【发布时间】:2018-06-01 20:02:12
【问题描述】:
我有一个 MS Access 数据库,它在启动时显示有关 SQL 语法错误的错误消息。 “查询语法错误。查询子句不完整。”在我点击第一个“确定”几秒钟后,它还会显示另一个错误。
这是两个错误:https://imgur.com/a/PesjIFk
但它并没有告诉我语法错误在哪里。在这个项目的很多不同的地方都有 SQL 语句。这是一个非常大的项目,仅查看所有代码希望我在某个地方发现错误是不切实际的。我怎样才能找出这个错误在哪里?
编辑:好的,显然你必须有一个带有“Break”键的键盘才能找到错误所在。哇。幸运的是,我碰巧有一个。如果我在看到错误消息时按break,这是 Access 将我带到的代码。此代码用于另一个表单的子表单。它突出显示第一行 (Private Sub Form_Current())。
Private Sub Form_Current()
If NumEnums > 0 Then
CurrentEnum = val(Nz(bit_value_edit.value)) 'Update CurrentEnum to the currently selected enum
Call UpdateEnumsLabel(Me.Parent![enums label]) 'Update label
End If
End Sub
...这里是 UpdateEnumsLabel():
Public Sub UpdateEnumsLabel(ByRef label As Control)
If NumEnums > 0 Then
label.Caption = "Enums: " & CurrentEnum & "/" & NumEnums
Else
label.Caption = "Enums: 0"
End If
End Sub
CurrentEnum 的定义:
Public CurrentEnum, CurrentPort, CurrentFile, CurrentGroup As Long
我认为此错误与 Form_Current() 中的代码无关,但 Access 突出显示了该行,因为该错误发生在打开表单时。但是该表单不包含任何使用查询的内容,所以我对 Access 的哪些查询有问题感到困惑。
【问题讨论】:
-
究竟是哪一行被突出显示? CurrentENum 也是一个功能吗? UpdateEnumsLabels 函数有什么作用?
-
@DougCoats 我在问题中添加了该信息。
-
检查命名查询和/或
SELECT语句,它们用作表单的记录源或组合框或列表框的行源。如果表单包含子表单,请在那里重复这些检查。请向我们展示错误消息的全文。 -
@HansUp 我查看了表单的所有记录源/行源,但没有一个使用任何 SQL。该表单仅包含稍后将使用的标签和文本框。
-
请添加错误消息的屏幕截图(只需将 imgur.com 链接添加到您的问题)。