访问VBA,创建一个使用变量作为where条件的查询



我正试图编写一个vba代码,该代码将在Access中创建一个基于另一个表中单元格值的查询。我的问题是,当我试图从varRecords(0,0)变体拉出字符串时,它成为新查询的参数,而不是字符串。我尝试使用cstr()函数,但它仍然成为一个参数。如果我使用msgbox来测试正在创建的内容,它将显示为字符串。我可能在代码中遗漏了一些东西,但基本内容如下:

Dim dbsEmails As DAO.Database
Dim rstEmails As DAO.Recordset
Dim varRecords As Variant
Dim RecordCounter As Long
Dim qdfTemp As QueryDef
Dim strSQL As String
Dim strSQL2 As String
Set dbsEmails = CurrentDb
strSQL = "Select Email, ID from tbl_Email"
Set rstEmails = dbsEmails.OpenRecordset(strSQL, dbOpenSnapshot)
rstEmails.MoveLast
RecordCounter = rstEmails.RecordCount
rstEmails.MoveFirst
varRecords = rstEmails.GetRows(RecordCounter)
strSQL2 = "Select ID, Stuff from tbl2 Where id =" & varRecords(0,0)
SetqdfTemp = CurrentDb.CreateQueryDef("Pending Report", strSQL2)
End Function

尝试将其设置为字符串:

strSQL2 = "Select ID, Stuff from tbl2 Where id = '" & varRecords(0,0) & "'"