语法错误 运行 MS Access 中的 Visual Basic SQL 查询

Syntax Error running a Visual Basic SQL query in MS Access

我正在尝试在 MS Access 中创建日志 table 以跟踪 table 中日期字段的更改。每次我尝试更改表单中的字段值时,我都会收到一条语法错误消息:“查询表达式中存在语法错误(缺少运算符)。”我已经尝试研究如何修复它,但到目前为止我一直没有成功。这是我的查询:

    Private Sub Form_BeforeUpdate(Cancel As Integer)
      DoCmd.RunSQL "INSERT INTO DateChangeLog SELECT * FROM Date_table " & _
        "WHERE [Unique Key]=" & [Unique Key]
    End Sub
      

这里有什么我遗漏的吗? 谢谢您,MS Access 新用户!

没有看到涉及的数据类型,我猜测 [Unique Key] 可能是文本。如果是这样,您需要将实际值放在单引号中:

Private Sub Form_BeforeUpdate(Cancel As Integer)
      DoCmd.RunSQL "INSERT INTO DateChangeLog SELECT * FROM Date_table " & _
        "WHERE [Unique Key]='" & [Unique Key] & "'"
    End Sub

附带说明,没有列列表的 INSERT 语句和 SELECT * 都是不好的做法。您应该在两者中指定列名。由于我不知道您的专栏是什么,我们假设它们是 ColAColBColC

Private Sub Form_BeforeUpdate(Cancel As Integer)
      DoCmd.RunSQL "INSERT INTO DateChangeLog(ColA, ColB, ColC) SELECT ColA, ColB, ColC FROM Date_table " & _
        "WHERE [Unique Key]='" & [Unique Key] & "'"
    End Sub