Следующий код вызывает ошибку при попытке запустить его, я полагаю, что мне удалось фактически подключиться к базе данных, и я выбрал ячейку так, чтобы не было уверенности чего не хватает.Ошибка синтаксиса VBA (отсутствующий оператор) в выражении запроса 'PopID ='
ОШИБКА:
Syntax error (missing operator) in query expression 'PopID ='.
В идеале я хотел бы иметь возможность перечислить четыре клетки, которые входят в четыре колонки доступа, добавляя каждый раз, когда макрос выбежала
Const TARGET_DB = "testdb.accdb"
Sub AlterOneRecord() 'not working yet
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim fld As ADODB.Field
Dim MyConn
Dim lngRow As Long
Dim lngID As String
Dim j As Long
Dim sSQL As String
'determine the ID of the current record and define the SQL statement
lngRow = ActiveCell.Row
lngID = Cells(lngRow, 1).Value
sSQL = "SELECT * FROM tblPopulation WHERE PopID = " & lngID
Set cnn = New ADODB.Connection
MyConn = ThisWorkbook.path & Application.PathSeparator & TARGET_DB
With cnn
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;"
.Open MyConn
End With
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open Source:=sSQL, _
ActiveConnection:=cnn, _
CursorType:=adOpenKeyset, _
LockType:=adLockOptimistic
'Load contents of modified record from Excel to Access.
'do not load the ID again.
For j = 2 To 7
rst(Cells(1, j).Value) = Cells(lngRow, j).Value
Next j
rst.Update
' Close the connection
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
End Sub
я нахожу это странным с ними оба являются продуктами M $, что это недостаточно хорошо документировано или действительно очень легко выполнить. Возможно, я собираюсь сделать это неправильно.
Как я могу заставить его содержать ячейки A1 и B2, например?
«никакого значения приведены для более одного параметра» ошибка показывает сейчас – user2341069
Выглядит как ваш 'lngID' не содержит никакого значения. –
Как я могу заставить его содержать ячейки A1 и B2, например? – user2341069