Я проверил запрос UPDATE в конструкторе запросов Access, и он работает, но когда я пытаюсь использовать его в моем модуле, я получаю ошибку:Почему запрос действия не работает в доступе к VBA?
Invalid SQL заявление; ожидается ... или «ОБНОВЛЕНИЕ».
Мой запрос:
strSql = "UPDATE " & rs.Fields("tableName") & _
" SET " & rs.Fields("foreignKeyName") & " = " & rsContacts.Fields("contactId") & _
" WHERE contactId = " & ContactID
- RS: таблица, которая имеет TABLENAME, foriegnKeyName таблиц для обновления
- rsContacts: список contactIds (в настоящее время, стоя на в частности,).
Фактическая строка выходит так:
UPDATE myTable SET ContactId = 5 WHERE contactId = 2
Если запрос работает, и это является в запрос, почему я получаю эту ошибку?
Это мой полный код:
Public Sub updateChildTables(ByVal ContactID As Long, ByVal CompanyID As Long)
Dim strSql As String
Dim rs As Recordset
Dim rsPending As Recordset
strSql = "SELECT contactID FROM contacts _
WHERE companyId = " & CompanyID & " and contactId <> " & ContactID
Set rs = CurrentDb.OpenRecordset(strSql)
If Not (rs.BOF And rs.EOF) Then
rs.MoveFirst
strSql = "SELECT * FROM childTables"
Set rsChild = CurrentDb.OpenRecordset(strSql)
rsChild.MoveFirst
Do While Not rsChild.EOF
strSql = "UPDATE " & rsChild.Fields("tableName") & " SET " & rsChild.Fields("foreignKeyName") & " = " & rs.Fields("contactId") & " WHERE contactId = " & ContactID
DoCmd.RunSQL strSql
rs.moveNext
Loop
rsChild.Close
Set rsChild = Nothing
End If
Это случается очень часто, когда данные имеют значение. Можете ли вы проверить, есть ли какие-либо одиночные кавычки? – Whencesoever
Можете ли вы разместить соответствующий код, включая команду, выполняющую его и SQL из запроса? – Hambone
@JanWalczak, я не вижу. – MJH