Я получаю синтаксическую ошибку (отсутствует оператор) в выражении запроса 'ID_Unique = ID_Unique FROM [Excel 12.0 Xml; HDR = YES; IMEX = 2; ACCDB = YES; DATABASE = C: \ Users \ luiveg \ Desktop \ Databasetest \ DB Macro Test.xlsm]. [Rawdata $].
Вот код, который я использую:
Sub Upload_Excel_to_AccessUPDATE()
Dim wbpath As String
wbpath = Application.ActiveWorkbook.Path
Dim con As Object '' ADODB.Connection
Set con = CreateObject("ADODB.Connection") '' New ADODB.Connection
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=\\an\HRS SD Performance Data\Capacity DB.accdb;"
con.Execute _
"UPDATE AssigenedVol_tbl " & _
"SET Volume = Volume " & _
"WHERE ID_Unique = ID_Unique " & _
"FROM [Excel 12.0 Xml;HDR=YES;IMEX=2;ACCDB=YES;DATABASE=C:\Users\leg\Desktop\DB Macro Test.xlsm].[rawdata$]"
con.Close
Set con = Nothing
End Sub
Итак, допустим, что ID_Unique является первичным ключом в таблице. У нас уже есть записи в таблице (Process_Identifier, Login, Volume, effDate, ID_Unique), мы хотим обновить Volume на основе ID_Unique, если он уже существует, если ID_Unique не существует, мы хотим добавить Process_Identifier, Login, Volume, effDate, ID_Unique данные из Excel в базу данных.
Пример данных Excel:
Process_Identifier Login Volume effDate ID_Unique
O1FA73 rohen 0 5/31/2019 E2-anriz-I1FA05-05/30/2019
O1FA76 jiz 0 5/31/2019 cmposc-I1FA05-05/30/2019
I1FA05 jiz 10 5/31/2019 cmposc-O1FA73-05/30/2019
O1FA73 cmpsc 10 5/31/2019 jriz-I1FA05-05/30/2019
I1FA05 cmpsc 0 5/31/2019 jriz-O1FA76-05/30/2019
I1FA05 aniz 20 5/31/2019 rodrhen-O1FA73-05/30/2019
I1FA05 luieg 90 5/31/2019 luiveg-I1FA05-05/30/2019
Проблема в том, что я очень плохо знаком с VBA / макросами / кодированием в целом и не знаю, как это выполнить, поэтому я ищу любую помощь, помощь или указательные пальцы в правильном направлении, которое кто-то может предоставить.
Заранее благодарим вас за понимание!