我正在尝试在VBA中执行SQL查询以重新调用特定的案例编号。每当我执行查询时,它都会在标准表达式"中返回"数据类型不匹配的错误。我传递查询一个整数来用于查询自动编号主键。
Dim c As ADODB.Connection
Dim r As ADODB.Recordset
Dim strSQL As String, strManager As String
Set c = New ADODB.Connection
c.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Commit Tracker.accdb; Persist Security Info=False;"
strSQL = "SELECT * FROM CommitTrk WHERE CASE_ID_NBR = '" & CInt(frmCommitViewer.lstCases.Value) & "'"
Set r = c.Execute(strSQL)
当然调试hilights执行命令。任何帮助,将不胜感激。我传递了错误的数据类型以匹配自动编号吗?如果是这样,我应该使用什么数据类型?谢谢!
答案 0 :(得分:1)
如果CASE_ID_NBR
具有数字类型,则应使用它而不带引号:
strSQL = "SELECT * FROM CommitTrk WHERE CASE_ID_NBR = " & CInt(frmCommitViewer.lstCases.Value)
您可能还想阅读此内容:Global Variables in SQL statement