У меня есть интерфейс доступа с бэкэнд SQL Server.Не удалось подключиться к подключению ODBC VBA
В одной из форм имеется бит VBA для хранения «журнала аудита» изменений.
В одной процедуре есть эти 2 бита кода, первые работы, но вторая дает ошибку
работы:
sSQL = "DELETE FROM [dbo_EventReport_Audit_Temp_Before];"
CurrentProject.Connection.Execute sSQL
Не работают несколько строк вниз:
sSQL = "INSERT INTO [dbo_EventReport_Audit_Temp_Before] (<TABLE COLUMNS>) SELECT <TABLE COLUMNS> FROM [dbo_EventReport] WHERE ((Event_ID)= <EVENT_ID>");"
CurrentProject.Connection.Execute sSQL
Таким образом, первый оператор удаляет любые записи в таблице. Это прекрасно работает, поскольку я вставил фиктивные данные и прошел через код и увидел, что он будет удален.
Но второе утверждение вызывает ошибку:
Error -2147467259: ODBC--connection to 'EventsDB' failed.
кто-то любая идея, почему первое утверждение работает нормально, но второй не удастся?
Извлечение значения sSQL для второго оператора и его запуск вручную через SQL Query in Access вставляет данные в таблицу.
EDIT: Я не хотел публиковать полный отчет, так как он немного монстр. Но вот это:
sSQL = "INSERT INTO " & sAudTmpTable & " ([audType], [audDate], [audUser], [Event_Number], [Event_ID], " & _
"[Received_Date], [Response_Date], [Site], [Server], [Workstation], [Software_Version], [Data_Version], " & _
"[Description], [Test_Description], [Company], [Observed_By], [Observed_Date], [Tested_By], [AssignedTo], " & _
"[Tested_Date], [Test_Result], [Ind_Tested_By], [Ind_Tested_On], [Ind_Test_Result], [Reviewed_By], " & _
"[Actioned_Date], [Review_Date], [Review_Result], [Completed_By], [Completed_Date], [Closed_By], " & _
"[Closed_Date], [Exclude], [Category], [State], [Event_Responsibility], [Probability], [WIP_Number], " & _
"[OriginalWIP], [Severity], [Blocked], [Block_Description], [Tags], [Work], [TaskID], [EventType], " & _
"[DefectType], [known_issue_impact], [known_issue_description], [Operator_Notes], [BugWIP], " & _
"[SupplierName], [SupplierCompany], [Simulator], [ATSTest], [FixPriority]) " & _
"SELECT '" & EditOrInsert & "' AS Expr1, '" & DateTime & "', '" & User & "', [Event_Number], [Event_ID], " & _
"[Received_Date], [Response_Date], [Site], [Server], [Workstation], [Software_Version], [Data_Version], " & _
"[Description], [Test_Description], [Company], [Observed_By], [Observed_Date], [Tested_By], [AssignedTo], " & _
"[Tested_Date], [Test_Result], [Ind_Tested_By], [Ind_Tested_On], [Ind_Test_Result], [Reviewed_By], " & _
"[Actioned_Date], [Review_Date], [Review_Result], [Completed_By], [Completed_Date], [Closed_By], " & _
"[Closed_Date], [Exclude], [Category], [State], [Event_Responsibility], [Probability], [WIP_Number], " & _
"[OriginalWIP], [Severity], [Blocked], [Block_Description], [Tags], [Work], [TaskID], [EventType], " & _
"[DefectType], [known_issue_impact], [known_issue_description], [Operator_Notes], [BugWIP], " & _
"[SupplierName], [SupplierCompany], [Simulator], [ATSTest], [FixPriority] " & _
"FROM [" & sTable & "] WHERE ((" & sKeyField & ")=" & lngKeyValue & ");"
Доступ ли предоставит вам дополнительную информацию о сбое при выполнении 'INSERT', как это? -> 'CurrentDb.Execute sSQL, dbFailOnError + dbSeeChanges' – HansUp
Раздражающе, вот как я вчера запускал этот код, пока не прочитал что-то, что сказал вместо этого использовать' CurrentProject.Connection.Execute sSQL'. Использование 'db.Execute sSQL, dbFailOnError + dbSeeChanges' работает отлично. Я до сих пор не понимаю, почему первое утверждение работает нормально, но не второе, используя 'CurrentProject.Connection.Execute sSQL', неважно. – TomBridges