Проблема с моим обновлением - ошибка 3144 - PullRequest
1 голос
/ 05 мая 2020

Я получаю ошибку времени выполнения 3144 Синтаксическая ошибка в операторе обновления, когда я запускаю этот код и не уверен, что делаю неправильно. У меня есть список, который я хочу записать в другую таблицу (моя основная таблица) в моей базе данных. Ниже приведен код:

Set lst = Me.lstTermEmpl

For Each item In lst.ItemsSelected
    CurrentDb.Execute "UPDATE tbl_Staffing SET Term_Heat_Ticket_Num = me.TxtTerm_Heat_Ticket_Num, Inactive_Status_Dt =lst.column(7), Termination_Reason_FK =lst.column(9), WHERE ID = " & _
        lst.Column(8) & ";", dbFailOnError

Это возвращает значения для me.TxtTerm_Heat_Ticket_num и Inactive_Status_dt, но не Termination_Reason_FK или ID.

Может быть, я что-то пропустил в коде?

Это мой запрос для моего списка:

SELECT Tbl_Term_Employees.Term_ID, Tbl_Term_Employees.Date_of_TermEmplRequest,
Tbl_Term_Employees.NatGen_ID, Tbl_Term_Employees.FirstName, 
Tbl_Term_Employees.LastName, IIf([Term_Approval_Status]=0,"Pending SVM Approval","SVM Approved") AS TermApprovalStatus, 
Tbl_Termination_Reasons.Termination_Reason, 
Tbl_Term_Employees.Inactive_Status_Dt, Tbl_Term_Employees.ID_FK, 
Tbl_Term_Employees.Termination_Reason_FK, Tbl_Term_Employees.Team_Fk, 
Tbl_Term_Employees.Site_FK
FROM ((Tbl_Term_Employees INNER JOIN Tbl_Termination_Reasons ON Tbl_Term_Employees.Termination_Reason_FK = Tbl_Termination_Reasons.Termination_Reason_ID) INNER JOIN Tbl_Teams ON Tbl_Term_Employees.Team_Fk = Tbl_Teams.Team_ID) INNER JOIN Tbl_Site ON Tbl_Term_Employees.Site_FK = Tbl_Site.Site_ID
WHERE (((Tbl_Term_Employees.Team_Fk)=[forms]![FrmTermEmplList].[cboTeam]) AND ((Tbl_Term_Employees.Site_FK)=[forms]![FrmTermEmplList].[cboSite]) AND ((Tbl_Term_Employees.Term_Approval_Status)=[forms]![FrmTermEmplList].[txtTerm_Approval_Status]));

enter image description here - Изображение моего запроса в режиме конструктора

1 Ответ

1 голос
/ 06 мая 2020

Объединение входных переменных. Ссылка на элемент управления формы - это переменная.
Точка с запятой ";" не требуется.
Удалите запятую перед ГДЕ.

Параметр для поля типа дата / время требует # разделителей, параметр текстового поля требует апострофов.

    CurrentDb.Execute "UPDATE tbl_Staffing SET Term_Heat_Ticket_Num = '" & _
        Me.TxtTerm_Heat_Ticket_Num & "', Inactive_Status_Dt = #" & lst.column(7, item) & _
        "#, Termination_Reason_FK = " & lst.column(9, item) & " WHERE ID = " & lst.Column(8, item), dbFailOnError
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...