我有一个名为“Tests”的表,包含Test_ID,Test_Date,Test_Name和Done? (y / n)字段。
在5个不同的日期,每月有5次测试。测试完成后,用户点击完成?字段并选择是或否。
一旦用户选择“是”,我希望将新记录添加到具有相同Test_Name值的“Tests”表中,但Test_Date应为Test_Date + 5天。
我尝试了追加查询,但它为所有以前的记录增加了5天,因此每次运行查询时都会重复Test_Date和Test_Name。
我在“完成后”的“更新后”属性上尝试了“插入”声明吗?表单上的字段,但它给出了错误消息。
请有人帮忙吗?
以下是我试过的陈述:
Private Sub Done__AfterUpdate()
Insert Into Tests ([Test_Name], [Test_Date], Values ([Test_Name], ([Test_Date] + 5))
End Sub
它给出了编译错误:
预期:声明结束
| Test_ID | Test_Name | Test_Date | Done? |
------------------------------------------------------
| 1 | Test 1 | 01/01/2017 | Yes |
| 2 | Test 2 | 02/01/2017 | |
答案 0 :(得分:0)
您可以直接在VBA中运行SQL。所以:
Private Sub Done__AfterUpdate()
Dim Sql As String
Dim TestName As String
Dim TestDate As Date
TestName = Me![Test Name].Value
TestDate = DateAdd("d", 5, Me![Test Date].Value)
Sql = "Insert Into Tests ([Test_Name], [Test_Date]) Values ('" & TestName & "',#" & Format(TestDate, "yyyy\/mm\/dd") & "#)"
CurrentDb.Execute Sql
End Sub