如何在 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