如何将整数值传递到 VBA 中的 SQL 查询

How to pass the integer value into an SQL Query in VBA

我在 a 方法中编写了两个查询,其中一个查询的输出作为输入提供给另一个查询。我尝试将 result(int) 传递到第二个查询的 WHERE 子句中,但出现语法错误。

下面是我的代码:

Private Sub ComboBox1_Change()



On Error GoTo UserForm_Initialize_Err
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim result As Integer

cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
         "Data Source=C:\Users\inkapb\Desktop\EPC Database\EPC TOOL.mdb"
rst.Open "SELECT [Project_Id] FROM [Project Details] WHERE [Project Name] = '" & Me.ComboBox1.Value & " ' ;", _
         cnn, adOpenStatic
'rst.MoveFirst

result = rst.Fields(0)
rst.Close

'Here in the below query i want to pass the result of the first query into WHERE clause


rst.Open "SELECT [Product Name] FROM [Project Details] WHERE [Project_Id] = ;" & result, _ 
         cnn, adOpenStatic
rst.MoveFirst

With Me.ComboBox2
    .Clear
    Do
        .AddItem rst![Product Name]
        rst.MoveNext
    Loop Until rst.EOF
End With
UserForm_Initialize_Exit:
On Error Resume Next
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
Exit Sub
UserForm_Initialize_Err:
MsgBox Err.Number & vbCrLf & Err.Description, vbCritical, "Error!"
Resume UserForm_Initialize_Exit


End Sub

谁能帮我实现这个 任何帮助表示赞赏!

由于额外的 space.

,第一个查询可能找不到要提供给第二个查询的值

变化:

 '" & Me.ComboBox1.Value & " ' ;", 

收件人:

'" & Me.ComboBox1.Value & "' ;", 

此外,将整数转换为字符串。使用 VR46 的查询,虽然添加:

 result.ToString()

解决方案是为第二个查询创建新的连接和记录集。

你的分号放错了,现在查询就像

SELECT [Product Name] 
FROM [Project Details] 
WHERE [Project_Id] =;8

应该是

WHERE [Project_Id] =8;

这里还有一个下划线 ;" & result, _ 也把它去掉。尝试这样的事情

rst.Open "SELECT [Product Name] 
          FROM [Project Details] 
          WHERE [Project_Id] = " & result & " ;", cnn, adOpenStatic, adLockReadOnly

或者干脆

rst.Open "SELECT [Product Name] 
          FROM [Project Details] 
          WHERE [Project_Id] = " & result , cnn, adOpenStatic, adLockReadOnly