Доступ к VBA создание запроса, в котором в качестве условия where используется вариант

#vba #ms-access

Вопрос:

Я пытаюсь написать код vba, который создаст запрос в Access с условием where, основанным на значении ячейки из другой таблицы. Моя проблема в том, что когда я пытаюсь извлечь строку из варианта 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 =" amp; varRecords(0,0)

SetqdfTemp = CurrentDb.CreateQueryDef("Pending Report", strSQL2)
End Function

 

Ответ №1:

Попробуйте сделать это строкой:

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

Комментарии:

1. Вот и все. Большое спасибо.