Нашел аналогичный пост по этому вопросу, но он использовал SQL-запрос, а я использую DLookup. Я импортирую лист Excel в Access. Я получаю во время выполнения 3075 - Синтаксическая ошибка (отсутствует оператор)... '[Component]='не имею/не хочу машину'. Этот конкретный компонент уже существует в БД, и при сравнении он выдает ошибку.
Либо ', либо / вызывают зависание О, и я пошел с Variant в tmpComponent b / c, если я перехожу к String, я получаю ошибку Object required в строке Set tmpComponent = .... Может в этом и проблема, просто не уверен.
Вот мой код, и жирным шрифтом выделено место, где возникает ошибка. Заранее благодарим вас за любое направление, которое вы можете предоставить.
Set rsCat = db.OpenRecordset("Categories", dbOpenDynaset, dbSeeChanges)
Dim x As Integer: x = 2
Dim LRow As Integer: LRow = ExLWb.Sheets("Categories").Cells(Rows.Count, 2).End(xlUp).Row
Dim tmpPFId As Variant, tmpCategory As Variant, tmpComponent As Variant, tmpSyntax As Variant, tmpCycle As Variant
Dim NewItem As Integer
NewItem = 0
'******************* LOOP THROUGH SPREADSHEET UPDATING CATEGORY TABLE
For x = 2 To LRow
Set tmpPFId = ExLWs.Cells(x, 2)
Set tmpCategory = ExLWs.Cells(x, 3)
Set tmpComponent = ExLWs.Cells(x, 4)
Set tmpSyntax = ExLWs.Cells(x, 5)
Set tmpCycle = ExLWs.Cells(x, 9)
**If IsNull(DLookup("[Component]", "[Categories]", "[Component]= '" & tmpComponent & "'")) Then**
rsCat.AddNew
rsCat!PF_ID = tmpPFId
rsCat!Category = tmpCategory
rsCat!component = tmpComponent
rsCat!Syntax = tmpSyntax
rsCat!Active = True
rsCat!Available = True
rsCat!Cycle = tmpCycle
rsCat.Update
NewItem = NewItem + 1
End If
Next x