问题描述
Number of employee/start date/end date/code/different date by Days/checkBox
示例
200/01-01-2021/15-01-2021/E/14/Yes
当 checkBox=Yes 时,我需要在新表 2 中自动打开 14 条记录,代码如下:
employee/date/code
200/01-01-2021/E
200/02-01-2021/E
200/03-01-2021/E
200/04-01-2021/E
200/05-01-2021/E
200/06-01-2021/E
200/07-01-2021/E
200/08-01-2021/E
200/09-01-2021/E
200/10-01-2021/E
200/11-01-2021/E
200/12-01-2021/E
200/13-01-2021/E
200/14-01-2021/E
解决方法
提取参数:
Data = "200/01-01-2021/15-01-2021/E/14/Yes"
ENo = Split(Data,"/")(0)
FirstDate = DateValue(Split(Data,"/")(1))
ECode = Split(Data,"/")(3)
Periods = Split(Data,"/")(4)
然后运行此查询并传递参数:
PARAMETERS
Periods Short,FirstDate DateTime;
SELECT DISTINCT
10 * Abs([Deca].[id] Mod 10) + Abs([Uno].[id] Mod 10) + 1 AS Sequence,ENo As Employee,DateAdd("d",[Sequence] - 1,[FirstDate]) AS DateStart,ECode As Code
FROM
MSysObjects AS Uno,MSysObjects AS Deca
WHERE
(10 * Abs([Deca].[id] Mod 10) + Abs([Uno].[id] Mod 10)) < [Periods];
输出:
您可以将此查询用作追加查询中的源。
或者,使用 DAO 直接追加记录:
Dim Records As DAO.Recordset
Dim Index As Integer
Set Records = CurrentDb.OpenRecordset("Select * From Table2")
For Index = 0 To Periods - 1
Records.AddNew
Records!Employee.Value = Eno
Records!Date.Value = DateAdd("d",Index,FirstDate)
Records!Code.Value = ECode
Records.Update
Next
Records.Close