我确信这可能很简单,所以我提前道歉。这实际上是我第一次写VBA而且我遇到了一个问题,我根本无法解决这个问题。我已经搜索并尝试了多种方法,但是尽管我尝试了任何东西仍然存在同样的问题。
我只是打开一个新记录集,使用SQL从另一个表中填充值,从记录集中检索值,然后在表单上的某些标签上设置标题。我的代码:
Dim oconStudents As ADODB.Connection
Dim orsStudents As ADODB.Recordset
Dim strStudentsSQL As String
Set oconStudents = CurrentProject.AccessConnection
Set orsStudents = New ADODB.Recordset
Set strGetCustIDSQL = _
"SELECT [CustomerID] FROM [Students Classes] WHERE [Class ID] = " & _
Me.txtClassID.Value & ";"
orsStudents.Open strGetCustIDSQL, oconStudents, adOpenForwardOnly, _
adLockReadOnly, adCmdTable
With orsStudents
If Not orsStudents.EOF Then
lblStudent1.Caption = orsStudents.Fields.Item(0)
orsStudents.MoveNext
End If
End With
我运行此操作,并在此行中收到运行时错误13:
Set strGetCustIDSQL = _
"SELECT [CustomerID] FROM [Students Classes] WHERE [Class ID] = " & _
Me.txtClassID.Value & ";"
我不能为我的生活找出原因。我在查询中运行SQL,它正确地为我返回我的值。我已将adCmdTable更改为adCmdText,并尝试在SQL字符串的Me.txtClassID.Value部分周围添加“#”符号以及许多其他字符。将鼠标悬停在SQL字符串上,我可以看到正确的“Class ID =”值(在本例中为“2”),但将鼠标悬停在SQL字符串上会显示“= empty”。
我忽略了什么简单的注意事项? 在此先感谢您的帮助!
答案 0 :(得分:3)
字符串赋值的Set
部分不正确。您只对对象使用Set
(例如ADODB对象)。原始数据类型(字符串,整数等)使用简单赋值。
即
strGetCustIDSQL = _
"SELECT [CustomerID] FROM [Students Classes] WHERE [Class ID] = " & _
Me.txtClassID.Value & ";"
我也不认为“;”从ADODB执行SQL时是不可靠的。