Exportar de Excel a Access e importar de Access a Excel
publicado
Hola! amigos del foro quisiera solicitarles el apoyo con lo siguiente: me encuentro tratando de encontrar la forma que pueda exportar datos de excel a access, estoy intentándolo con la siguiente macro:
Sub CopiaDatos()
Dim fila As Long, uf As Long, conta As Long
Dim cn As ADODB.Connection, rs As ADODB.Recordset
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set a = ActiveSheet
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & "data source=" & ThisWorkbook.Path & "\171 ProgramarExcel.accdb;"
rs.Open "Clientes", cn, adOpenKeyset, adLockOptimistic, adCmdTable
fila = 2825
conta = 0
While a.Cells(fila, "R") <> Empty
With rs
.AddNew
.Fields("Id") = Cells(fila, "R")
.Fields("Usuario") = Cells(fila, "S")
.Fields("Cédula") = Cells(fila, "T")
.Fields("Cuenta") = Cells(fila, "U")
.Fields("Mail") = Cells(fila, "V")
.Fields("Cargo") = Cells(fila, "W")
.Update
End With
conta = conta + 1
fila = fila + 1
Wend
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
MsgBox ("Se procesaron " & conta & " registros con éxito, se omitieron duplicados"), vbInformation, "AVISO"
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
El problema que tengo con el código es que no me copia, las filas de la columna "W", el resto si lo hace tomando los valores de la hoja 1, pero me gustaría es indicarle que los datos deben tomarse de la hoja llamada"Extras", en la posición R2825.
Por ultimo me gustaría saber si es posible realizar el proceso a la inversa entiéndase traer los valores de access a excel y pegarlos en la posición y hoja antes mencionado.
Hola! amigos del foro quisiera solicitarles el apoyo con lo siguiente: me encuentro tratando de encontrar la forma que pueda exportar datos de excel a access, estoy intentándolo con la siguiente macro:
Sub CopiaDatos() Dim fila As Long, uf As Long, conta As Long Dim cn As ADODB.Connection, rs As ADODB.Recordset On Error Resume Next Application.ScreenUpdating = False Application.DisplayAlerts = False Set a = ActiveSheet Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & "data source=" & ThisWorkbook.Path & "\171 ProgramarExcel.accdb;" rs.Open "Clientes", cn, adOpenKeyset, adLockOptimistic, adCmdTable fila = 2825 conta = 0 While a.Cells(fila, "R") <> Empty With rs .AddNew .Fields("Id") = Cells(fila, "R") .Fields("Usuario") = Cells(fila, "S") .Fields("Cédula") = Cells(fila, "T") .Fields("Cuenta") = Cells(fila, "U") .Fields("Mail") = Cells(fila, "V") .Fields("Cargo") = Cells(fila, "W") .Update End With conta = conta + 1 fila = fila + 1 Wend rs.Close Set rs = Nothing cn.Close Set cn = Nothing MsgBox ("Se procesaron " & conta & " registros con éxito, se omitieron duplicados"), vbInformation, "AVISO" Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
El problema que tengo con el código es que no me copia, las filas de la columna "W", el resto si lo hace tomando los valores de la hoja 1, pero me gustaría es indicarle que los datos deben tomarse de la hoja llamada"Extras", en la posición R2825.
Por ultimo me gustaría saber si es posible realizar el proceso a la inversa entiéndase traer los valores de access a excel y pegarlos en la posición y hoja antes mencionado.
Agradezco cualquier ayuda.
Saludos
JB
consulta foro.xlsm