вставка массива в таблицу с помощью прямого внедрения SQL с использованием VBA - PullRequest
0 голосов
/ 03 июня 2019

При попытке вставить эти массивы в таблицу данных в Microsoft Access 2016 существует синтаксическая ошибка SQL-ошибки 3134. Я не уверен, связано ли это с тем, что они являются массивами, или с их типами переменных

В настоящее время я использую метод набора записей для вставки в мою таблицу, однако из-за того, что .Update не принимает дубликаты в таблицу, я хотел бы использовать прямое внедрение SQL, чтобы иметь возможность добавлять данные.

Dim SCR_Link_Array(), SCR_Number_Array(), SCR_Unit_Array(), SCR_EquipTag_Array(), _
SCR_SCI_Array(), SCR_Title_Array(), SCR_EquipFail_Array(), SCR_Facility_Array() As String
Dim SCR_DiscoveryDate_Array(), SCR_FileDate_Array(), SCR_OccurenceDate_Array() As Date
Dim SCR_RowCount, row, record, field As Integer


'array definition happens here

For record = 0 To SCR_RowCount - 1
    'This loop is for inserting lines into the DataBase table tblimportedSCRs
    insertSQL = "INSERT INTO tblimportedSCRs(SCR #, Unit, System,Event Title,SCR Date,Date Occured,Discovery Date,Eq Fail,Facility) VALUES (" & SCR_Number_Array(record) & ", " & SCR_Unit_Array(record) & ", " & SCR_SCI_Array(record) & "," & SCR_EquipTag_Array(record) & "," & SCR_Title_Array(record) & "," & SCR_FileDate_Array(record) & "," & SCR_OccurenceDate_Array(record) & "," & SCR_DiscoveryDate_Array(record) & "," & SCR_EquipFail_Array(record) & "," & SCR_Facility_Array(record) & ")"
    DoCmd.RunSQL insertSQL

    Debug.Print (record)
 Next record


Я бы хотел, чтобы это правильно вставилось в таблицу, однако всякий раз, когда я запускаю DoCmd.RunSQL insertSQL, код встречает ошибку времени выполнения 3134.

1 Ответ

1 голос
/ 03 июня 2019

из-за того, что .Update не принимает дубликаты в таблицу. Я хотел бы использовать прямой SQL

Это не будет иметь никакого значения.

Если дубликаты не разрешены, по определению нет способа обойти это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...