В принципе, у меня есть код, который обновляет Access из Excel, он делает это, видя, что «контрольный идентификатор» равен «Инджид», который по сути является идентификатором мониторинга. Таким образом, в основном, если они совпадают, код нуждается в обновлении поля в таблице доступа с пометкой «TOWN».Обновление таблицы доступа из Excel - говорит, что текущая запись была удалена?
Однако, когда я это делаю, я получаю сообщение об ошибке .Fields("TOWN") = Cells(lngRow, 74).Value
. Ошибка: «Ошибка времени выполнения 3021 Либо BOF, либо EOF - True, или текущая запись была удалена. Запрошенная операция требует текущей записи». Запись существует в таблице, и я попытался с несколькими, но все равно не работает, какие-либо идеи?
Application.ScreenUpdating = False ' Prevents screen refreshing.
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim fld As ADODB.Field
Dim MyConn
Dim lngRow As Long
Dim lngID, LR, Upd
Dim sSQL As String
LR = Range("BN" & Rows.Count).End(xlUp).Row
Upd = LR - 1
lngRow = 1
Do While lngRow <= LR
lngID = Cells(lngRow, 66).Value
sSQL = "SELECT * FROM Tbl_Primary WHERE MonitorID = '" & lngID & "'"
Set cnn = New ADODB.Connection
MyConn = "Provider = Microsoft.ACE.OLEDB.12.0;" & _
"Data Source =location of access file.mdb"
With cnn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open MyConn
End With
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open sSQL, ActiveConnection:=cnn, _
CursorType:=adOpenKeyset, LockType:=adLockOptimistic
'Load all records from Excel to Access.
With rst
'
.Fields("TOWN") = Cells(lngRow, 74).Value
rst.Update
End With
' Close the connection
rst.Close
cnn.Close
Set rst = Nothing
Set cnn = Nothing
lngRow = lngRow + 1
Loop
MsgBox "Update Complete"
Проблема в том, что это не число, хотя каждый из них уникален, он также содержит буквы и в конце, поэтому, например, это может быть 16SC в качестве идентификатора. – Calum
Итак, вы указали переменную 'lngID' (как в« Long ») для максимальной путаницы? :-) @Calum – Andre
Ха, извините, я пробовал как String и не повезло. :(@ Andre451 – Calum