El procedimiento es lento. Vamos a suponer que tenemos los datos en una hoja excel, llamada "Query", en las columnas A y B, en una tabla también llamada "Query".
En la columna A está el identificador, es decir, el item del registro de la base de datos que sirve para identificar el registro que queremos actualizar, y en la columna B está el valor a actualizar.
El código es el siguiente:
Sub XLCD_to_Access()
Dim cnt As ADODB.Connection
Dim stSQL As String, stCon As String, stDB As String
Dim stSQL2 As String
Dim sh As Worksheet
Dim olo As ListObject
Set sh = sheets("Query")
Set olo = sh.ListObjects("Query")
stDB = "X:\basededatos.accdb" 'Aquí es el camino a la BASE DE DATOS
stCon = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & stDB & ";"
numfilas = olo.ListRows.Count
For i = 2 To numfilas
ident = Range("a" & i).Value
numal = Range("b" & i).Value
stSQL = "UPDATE tablaAactualizar SET campoAactualizar= " _
& numal & " WHERE campoidentificador = " & ident
'set connection variable
Set cnt = New ADODB.Connection
'open connection to Access db and run the SQL
With cnt
.Open stCon
.CursorLocation = adUseClient
.Execute (stSQL)
End With
Next i
'close connection
cnt.Close
'release object from memory
Set cnt = Nothing
End Sub