如何在 MS Access 中为给定的记录 ID 插入具有新日期(日期 + 5 天)的记录?
How do I insert records with new date (Date + 5 days) for a given record ID in MS Access?
我有 table 和 "Tests" 以及 Test_ID、Test_Date、Test_Name 和完成? (y/n) 个字段。
一个月内在 5 个不同的日期进行 5 次测试。一旦测试完成,用户点击完成?字段并选择是或否。
用户选择 "Yes" 后,我希望将一条新记录添加到 table "Tests" 中,其值与 Test_Name 相同,但 Test_Date 应该是 Test_Date + 5 天。
我尝试追加查询,但它向所有以前的记录添加了 5 天,因此每次查询 运行 时都会重复 Test_Date 和 Test_Name。
我在表单的 "Done?" 字段的 "After Update" 属性 上尝试了 "Insert Into" 语句,但它给出了错误消息。
有人能帮忙吗?
以下是我试过的语句:
Private Sub Done__AfterUpdate()
Insert Into Tests ([Test_Name], [Test_Date], Values ([Test_Name], ([Test_Date] + 5))
End Sub
它给出了编译错误:
Expected: End of Statement
| Test_ID | Test_Name | Test_Date | Done? |
------------------------------------------------------
| 1 | Test 1 | 01/01/2017 | Yes |
| 2 | Test 2 | 02/01/2017 | |
您可以 运行 SQL 直接在 VBA 中。所以:
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
我有 table 和 "Tests" 以及 Test_ID、Test_Date、Test_Name 和完成? (y/n) 个字段。
一个月内在 5 个不同的日期进行 5 次测试。一旦测试完成,用户点击完成?字段并选择是或否。
用户选择 "Yes" 后,我希望将一条新记录添加到 table "Tests" 中,其值与 Test_Name 相同,但 Test_Date 应该是 Test_Date + 5 天。
我尝试追加查询,但它向所有以前的记录添加了 5 天,因此每次查询 运行 时都会重复 Test_Date 和 Test_Name。
我在表单的 "Done?" 字段的 "After Update" 属性 上尝试了 "Insert Into" 语句,但它给出了错误消息。
有人能帮忙吗?
以下是我试过的语句:
Private Sub Done__AfterUpdate()
Insert Into Tests ([Test_Name], [Test_Date], Values ([Test_Name], ([Test_Date] + 5))
End Sub
它给出了编译错误:
Expected: End of Statement
| Test_ID | Test_Name | Test_Date | Done? |
------------------------------------------------------
| 1 | Test 1 | 01/01/2017 | Yes |
| 2 | Test 2 | 02/01/2017 | |
您可以 运行 SQL 直接在 VBA 中。所以:
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