Registrar Celdas de Excel a Access: Conectar Excel con Access con conexión OLEDB, te mostrare una macro para registrar datos que tengamos en celdas de una hoja de Excel y guardarlos en una Tabla de Access. En esta ocasión trabajare con este ejemplo de “Registrar Productos” con los campos de: Código, Descripción, Marca, Modelo, Unidad de Medida, Costo Unitario, Precio de Venta y otros campos, pero también podrás, antes de guardar los datos Crear un PDF con los datos que deseas Guardar, con Fecha y Hora actual muy Interesante…

Siempre y un punto muy importante que para poder conectar Excel con Access se debe habilitar una Referencia

Que es “Microsoft ActiveX Data Objects 2.5 Library”, así que te recomiendo que la habilites así como te lo muestro en la siguiente imagen:

Para habilitar la referencia 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 de 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 error en algunas líneas del código.

Te sugiero que para que este aplicativo te funcione debe de estar ambos archivos, es decir el Excel que contiene la macro y el de Base de Datos de Access, deben de estar en la misma carpeta, ruta o directorio.

Para poder Registrar celdas de excel a Access lo primero que debemos de  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:

Set cn = New ADODB.Connection

Set rs = New ADODB.Recordset

Posteriormente se abre la conexión de esta forma:

cn.Open “Provider=Microsoft.ACE.OLEDB.15.0; ” & “data source=” & ThisWorkbook.Path & “\BaseProductos.accdb;”

 Si estás usando Office 2016 se debe usar el siguiente proveedor de conexión, “Microsoft.ACE.OLEDB.16.0” en vez de “Microsoft.ACE.OLEDB.15.0” que es para Office 2013, esto es algo importante a tener en cuenta ya que de lo contrario daría un error.

En esta parte del Código especificaras el nombre de la base de datos = ThisWorkbook.Path & “\NombredeArchivo.accdb;”

 Luego debemos abrir el objeto recordset de la tabla que contiene los datos en Access, esto se hace con el siguiente código:

rs.Open “PRODUCTOS”, cn, adOpenKeyset, adLockOptimistic, adCmdTable

Posteriormente vamos a realizar un bucle recorriendo las filas hasta la última con datos, esto se hace con:

While acts.Cells(fila, “A”) <> empty

Wend

Luego haremos que cada campo del objeto recordset sea igual a la celda que contiene el registro respectivo, esto se hará con todos los campos de la tabla PRODUCTOS de la base de datos, estableciendo que se debe agregar un nuevo registro al campo (Fields), se utiliza el siguiente código:

With rs

 .AddNew

 .Fields(“CodigoP”) = Cells(fila, “A”)

 .Fields(“DescripcionP”) = Cells(fila, “B”)

 .Fields(“MarcaP”) = Cells(fila, “C”)

 .Fields(“ModeloP”) = Cells(fila, “D”)

 .Fields(“UmedidaP”) = Cells(fila, “E”)

 .Fields(“CostoP”) = Cells(fila, “F”)

 .Fields(“PventaP”) = Cells(fila, “G”)

 .Fields(“FechaP”) = Cells(2, 4)

 .Fields(“ResponsableP”) = Cells(2, 7)

  .Update

End With

Por ultimo se debe cerrar las variables y vaciarlas, ya que de lo contrario consumirá muchos recursos, si no se realiza esta operación, en este ejemplo no afecta en nada, porque estamos manejando pocos registros, pero cuando se tiene 10000 registros o mas, consume muchos recursos, el vaciado de las variables se realiza por medio del siguiente código:

rs.Close

Set rs = Nothing

cn.Close

Set cn = Nothing

El código te quedara de esta forma observa la siguiente imagen:

También desde el Libro de Excel podrás Generar archivos PDF con un solo Click desde la Cinta de Opciones, el cual ya te lo trae incorporado este Aplicativo, y se creará el archivo tipo PDF desde este código el cual ya anterior mente lo habíamos visto, pero hoy incluirá fecha y hora actual:

  • Especificas la celda y cuál será el nombre que llevará el archivo.
  • El archivo se concatenará con el nombre del archivo + fecha + hora.
  • Y un mensaje de confirmación de que se creó un nuevo Archivo PDF.

La siguiente macro será para limpiar los campos de los datos que vamos a registrar a Access una vez ya procesados.

El archivo PDF se creará de esta forma tomando como base un rango de celdas y un mensaje de confirmación:

En la imagen que sigue se muestra la base de datos de Access donde se irán almacenando los datos registrados desde Excel y también la vista previa de cómo queda el archivo PDF ya generado.

Recuerda estar pendiente de las nuevas actualizaciones de esto aplicativos y de nuevos ejemplos siempre trabajando con conexiones de Excel a Access y si estas interesado y te ha gustado este Aplicativo los podrás descargar y adaptarlo a tus necesidades ingresando al código VBA = AGUIRRE2018.

Descarga este Aplicativo desde   AQUÍ

Demostración y función de este Aplicativo   VER VÍDEO


  https://goo.gl/iQRzhu “Canal de Aguirre”

  https://goo.gl/FS4UcZ “Canal MacroExcel” Próximamente todos los vídeos disponibles aquí”

  https://goo.gl/qKpNFe “Pagina Oficial MacroExcel”

  https://goo.gl/cQQ7Gi “Facebook MacroExcel – ME”
❗Recuerda también: contamos con un grupo privado síguenos y envíanos la solicitud si deseas ayuda y aportar en la comunidad “MacroExcel – ME”

Categorías: Vba

Deja un comentario

WhatsApp Necesitas Ayuda?
A %d blogueros les gusta esto: