VBA中SQL查询的数据类型不匹配

时间:2014-04-01 13:59:56

标签: sql excel vba

我正在尝试在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执行命令。任何帮助,将不胜感激。我传递了错误的数据类型以匹配自动编号吗?如果是这样,我应该使用什么数据类型?谢谢!

1 个答案:

答案 0 :(得分:1)

如果CASE_ID_NBR具有数字类型,则应使用它而不带引号:

strSQL = "SELECT * FROM CommitTrk WHERE CASE_ID_NBR = " & CInt(frmCommitViewer.lstCases.Value)

您可能还想阅读此内容:Global Variables in SQL statement