.
Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.
Para poder conectar Excel con Access se debe habilitar una referencia que es «Microsoft ActiveX Data Objects 2.5 Library», no obstante como posteriormente vamos a seguir trabajando con este mismo ejemplo te recomiendo habilites todas las referencias que están en la figura siguiente:
.
Para habilitar las referencias debes ingresar a Excel, iniciar el editor de VBA con Alt + F11, luego debes ir al menú Herramientas y luego al sub menú Referencias, se abre el cuadro de diálogo igual al mostrado en la imagen anterior, debiendo hacer click en las casillas para activar las referencias, busca las que salen tildadas en la imagen y tilda en tu archivo, para que quede en forma idéntica, habilitadas las referencias ya no tendrás problemas con ellas ya que de lo contrario te daría erro ciertas lineas de código.
Sugiero descargar el archivo de ejemplo y ver la codificación para un mejor entendimiento, el archivo que se descargará es un fichero comprimido .rar; se debe descomprimir en cualquier dirección de la PC, la única condición para que el ejemplo funcione es que ambos archivos, es decir el Excel que contiene la macro y el de Base de Datos de Access, deben estar en el mismo directorio.
Lo primero que se va a realizar es declarar las variables para conectar Excel con Access estas son las variables necesarias:
Dim cn As ADODB.Connection, rs As ADODB.Recordset
Luego de ello se crea un objeto conexión y un objeto recordset de esta manera:
…
En la figura que sigue se muestra el libro de Excel que contiene los datos a exportar y en la siguiente los resultados obtenidos luego de haber exportado los datos, como se podrá observar, todos los datos de Excel se exportaron a la base de datos de Access.
El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar Excel con Access y muchos ejemplos más.
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
Código que se inserta en un módulo
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 = 2
conta = 0
While a.Cells(fila, «A») <> Empty
With rs
.AddNew
.Fields(«Id») = Cells(fila, «A»)
.Fields(«Nombre») = Cells(fila, «B»)
.Fields(«Telefono») = Cells(fila, «C»)
.Fields(«Direccion») = Cells(fila, «D»)
.Fields(«Mail») = Cells(fila, «E»)
.Fields(«Credito») = Cells(fila, «F»)
.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
.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends