sql - 在 MS Access 中运行 Visual Basic SQL 查询的语法错误
问题描述
我正在尝试在 MS Access 中创建一个日志表,以跟踪对表中日期字段的更改。每次我尝试更改表单中的字段值时,都会收到一条语法错误消息:“查询表达式中的语法错误(缺少运算符)。” 我已经尝试研究如何解决它,但到目前为止我还没有成功。这是我的查询:
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 *
都是不好的做法。您应该在两者中指定列名。由于我不知道您的列是什么,让我们假设它们是ColA
, ColB
, 和ColC
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
推荐阅读
- javascript - 未捕获的类型错误:无法读取未定义的属性“包含”
- presto - Presto拆分字符串,但输出到新行
- c - 一次从文件中读取 2 行,然后在 C 中交替将两行合并为一行
- javascript - 如何在特定 DIV 中的 DOM 中更早地激活 JavaScript?
- excel - 在 Excel VBA 中增加行和列以查找差异和粘贴值
- symfony - Symfony 3 处理错误
- python - 似乎无法理解为什么 tf.contrib.layers.zeros_initializer() 给出了 Aterror
- c# - 使用多文本框窗口形式搜索 C#
- sql - Laravel Query:为 Query Builder 实现 Eloquent Scope
- textures - 如何使用金属绘制压缩的 16 位像素格式纹理?