[Hola
Este código tiene al menos 15 años pero es más cercano a lo que necesitas que el anterior:
Rem Codigo tomado de:
Rem http://www.erlandsendata.no/english/index.php?d=envbadacexportado
Rem Usado y modificado por Abraham Valencia
Sub exportaraccess()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, n As Long
Dim nfila As String
If [a2] = Empty Then
MsgBox prompt:="No hay datos para exportar", Buttons:=vbOKOnly + vbCritical, Title:="Campos vacios"
Exit Sub
End If
Set cn = New ADODB.Connection
cn.Open "provider=microsoft.jet.oledb.4.0; " & "data source=" & ThisWorkbook.Path & "\Combinar2.mdb;"
Set rs = New ADODB.Recordset
rs.Open "Datos", cn, adOpenKeyset, adLockOptimistic, adCmdTable
n = 2
Do While Range("a" & n) <> Empty
With rs
.AddNew
.Fields("Nombre") = Range("a" & n).Value
.Fields("Sexo") = Range("b" & n).Value
.Fields("Direccion") = Range("c" & n).Value
.Fields("Edad") = Range("d" & n).Value
End With
n = n + 1
Loop
With rs
.AddNew
.Fields("Nombre") = Range("a" & n).Value
.Fields("Sexo") = Range("b" & n).Value
.Fields("Direccion") = Range("c" & n).Value
.Fields("Edad") = Range("d" & n).Value
End With
Set rs = Nothing
cn.Close
Set cn = Nothing
MsgBox prompt:="Los datos fueron enviados correctamente", Buttons:=vbOKOnly, Title:="DATOS EXPORTADOS"
If [a3] = Empty Then
Range("a2", Selection.End(xlToRight)).ClearContents
Exit Sub
End If
nfila = Range("A65535").End(xlUp).Row
Range("a2:d" + nfila).ClearContents
End Sub
La cadena de conexión sí usa la del ejemplo anterior.