Я пытаюсь получить querydef, чтобы изменить его код SQL, создав строку SQL, а затем применив ее, используя значение поля из dbo_lookups. Таблица dbo_lookups содержит список всех строк SQL, то есть strSQLByDepartment и т. Д.Доступ к VBA Set QueryDef.SQL для строки из имени поля
Когда он добирается до строки qrydef.SQL = rst! DataOut1 Я получаю ошибку 3129 недопустимый SQL-код, это потому, что он пытается изменить querydefs sql-код, чтобы сказать strSQLByDepartment, а не фактический код SQL, который я уже объявил, есть ли в любом случае, я могу заставить его обновить код SQL, используя то, что у меня есть? помогите, если это имеет смысл?
Set db = CurrentDb
Set qrydef = db.QueryDefs("Query1")
Set qrydef2 = db.QueryDefs("Query2")
strSQLByDepartment = "SELECT * " & _
"FROM Table1;"
strSQLByDepartment2 = "SELECT * " & _
"FROM Table2;"
strSQLByP = "SELECT * " & _
"FROM Table3;"
strSQLByP2 = "SELECT * " & _
"FROM Table4;"
Dim rst As DAO.Recordset
strLookups = "SELECT dbo_Lookups.Type, dbo_Lookups.DataIn, dbo_Lookups.DataOut1, dbo_Lookups.DataOut2 " & _
"FROM dbo_Lookups " & _
"WHERE (((dbo_Lookups.Type) = 'JobValueTypes')) " & _
"ORDER BY dbo_Lookups.DataIn;"
Set rst = CurrentDb.OpenRecordset(strLookups)
Do Until rst.EOF = True
If Me.Report= rst!DataIn Then
qrydef.SQL = rst!DataOut1
qrydef2.SQL = rst!DataOut2
Else
End If
rst.MoveNext
Loop
Может быть хорошая идеей, чтобы проверить, что отдается в 'первого! DataOut1' и' RST ! DataOut2' – PaulFrancis