如何为MS Access中的给定记录ID插入具有新日期(日期+ 5天)的记录?

时间:2017-06-30 07:05:36

标签: ms-access-2007

我有一个名为“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  |            |

1 个答案:

答案 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