Access 2007运行时错误

0 ms-access vba runtime ms-access-2007

我不确定这是否是发布此问题的正确网站,但在这里......

在Access 2007中,我收到错误"运行时错误'3061':参数太少.预期1"在这段VBA代码上:

Private Sub btnCheck_Click()

    Dim rs As Recordset
    Dim db As Database
    Dim id As String
    Dim query As String
    MsgBox ("one")
    Set db = CurrentDb()
    id = Me.UniqueID.Value
    query = "SELECT [Unique_ID] from tblPatients WHERE [Unique_ID] =" & id
    MsgBox (id)
    Set rs = db.OpenRecordset(query) <<<<<HIGHLIGHTED LINE

    If IsNull(rs) Then
        Me.lblCheck.Caption = "NEW"
    Else
        Me.lblCheck.Caption = "EXISTS"
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

数据源是表,而不是查询.任何帮助将非常感激!

mwo*_*e02 5

Unique_ID您的表中没有命名的字段tblPatients.如果您发布了所有代码,那么这是唯一可能的解释.

编辑:您的评论证实了我的怀疑:

我只是三重检查:P表名:tblPatients列名:唯一ID

您在代码中添加了一个下划线,该下划线在您的字段名称中不存在.你使用方括号是正确的,但正确的代码应该是:

query = "SELECT [Unique ID] from tblPatients WHERE [Unique ID] =" & id
Run Code Online (Sandbox Code Playgroud)

请注意删除的下划线.或者(和我最好说,如果你在设计的早期阶段),你可以在表中的字段重命名为无论是Unique_IDUniqueID,并保存自己的麻烦的一个很好的协议.