2015-12-14 2 views
-1

Не знаете, что вызывает ошибку.Ошибка 3075 в Access 2013

CurrentDb.Execute "UPDATE dbo_RootCause SET Part = '" & Me.cboPart & "', Qty = '" & Me.cboQTY & "', Code = '" & Me.cboCode & "', Reason = '" & Me.txtReason & "', RootCause = '" & Me.txtRootCause & "', CorrectiveAction = '" & Me.txtCorrectiveAction & "', CAdate = '" & Me.txtCAdate & "', CA_Comp_By = '" & Me.txtCA_Comp_By & "', ReturnInv = '" & Me.cboReturnInv & "', ReturnCust = '" & Me.cboReturnCust & "', CustFollowUp = '" & Me.cboCustFollowUp & "' WHERE ListItems = " & Me.txtListItems & "", dbSeeChanges 
+1

начать отладку: введите запрос в строку, чтобы вы могли захватить всю строку, которую вы строите, и искать синтаксические ошибки. вы уязвимы для [sql injection attack] (http://bobby-tables.com) –

+0

Остановить конкатенацию операторов SQL с пользовательского ввода. Используйте параметризованные запросы. Помимо защиты от SQL-инъекции, она устраняет необходимость в повторных котировках, ошибках в преобразованиях типов данных, повторных комбинациях с одиночной/двойной кавычками и делает ваш код 1000x более легким для чтения и обслуживания. –

+0

[Отладка динамического SQL в VBA] (http://stackoverflow.com/a/1099570/3820271). Конец. – Andre

ответ

0

Необходимо форматировать значение даты как допустимое строковое выражение, а числа не являются строками. См. Примеры:

CurrentDb.Execute "UPDATE dbo_RootCause SET Part = '" & Me.cboPart & "', Qty = " & Str(Me.cboQTY) & ", Code = '" & Me.cboCode & "', Reason = '" & Me.txtReason & "', RootCause = '" & Me.txtRootCause & "', CorrectiveAction = '" & Me.txtCorrectiveAction & "', CAdate = #" & Format(Me.txtCAdate, "yyyy\/mm\/dd") & "#, CA_Comp_By = '" & Me.txtCA_Comp_By & "', ReturnInv = '" & Me.cboReturnInv & "', ReturnCust = '" & Me.cboReturnCust & "', CustFollowUp = '" & Me.cboCustFollowUp & "' WHERE ListItems = " & Me.txtListItems & "", dbSeeChanges 
Смежные вопросы