Cómo utilizar VBA para importar datos de Excel a Access Después del parón obligado por Navidad volvemos con nuestro blog, hoy lo dedicamos a aprender mas cosas sobre Excel, recuerda que si te ha gustado lo que has leído compártelo!! Este articulo ha sido extraido de nuestro curso “Excel avanzado y programacion VBA”, el cual lo puedes consultar pinchando aqui. Aprender a utilizar Visual Basic para aplicaciones para importar datos a Access puede hacer que su aplicación de base de datos más dinámico. En VBA , puede utilizar una combinación de objetos para abrir un libro de Excel existente e importar algunos datos a una tabla de Access. Utilice la biblioteca de objetos de Microsoft Excel en VBA para abrir el libro . El objeto Recordset se utiliza para abrir una tabla existente en el acceso y guardar los datos de Excel en el mismo. Usando VBA para importar datos puede reducir significativamente la cantidad de tiempo que pasa la importación de datos de forma manual. Instrucciones: 1. Abrimos Microsoft Office Excel y escribimos ” datos1 ” en A2, y ” data2 ” en B2 . Pulsamos la tecla “Ctrl ” y ” S ” para abrir el “Guardar como” ventana de diálogo y guardamos el libro en “C: \\ Temp \\ ” as “. DataToImport.xlsx “. 2. Abrimos Microsoft Office Access , hacemos clic en “Base de datos en blanco ” y clic en el botón “Crear” . Hacemos clic en ” Herramientas de base de datos” y posteiormente clic en “Visual Basic ” para abrir la ventana del editor de VB hacemos clic en el menú ” Insertar” y luego clic en ” módulos” para insertar un nuevo módulo de código. Hacemos clic en el menú ” Herramientas”-> “Referencias “, y marcamos la casilla junto a ” biblioteca de objetos de Microsoft . ” 3. Ahora escribimos el siguiente código de VBA crear nuevo procedimiento sub : importExcelData sub Private () 4. Escribimos lo siguiente para crear variables que va a utilizar para leer Excel : Dim xlApp En Excel . Aplicación xlBk As Excel.Workbook xlSht As Excel.Worksheet 5. Escribimos lo siguiente para crear variables que va a utilizar en Access : < br > dbRst As Recordset Dim dbs como base de datos sqlstr dévil como secuencia 6. Escribimos lo siguiente para definir los objetos de base de datos , así como definir el Excel libro de usar: Set dbs = CurrentDb Set xlApp = Excel.Application Establecer xlBk = xlApp.Workbooks.Open (“C: \\ temp \\ dataToImport.xlsx ” ) Set xlSht = xlBk.Sheets ( 1 ) 7. Creamos una nueva tabla con dos columnas en Access para importar datos de Excel. Escribimos el siguiente código de VBA para crear la tabla utilizando el objeto ” DoCmd “: sqlstr = ” CREATE TABLE Exceldata ( columnOne TEXTO, TEXTO columnTwo ) ” DoCmd.SetWarnings False < p> DoCmd.RunSQL ( sqlstr ) 8. Abrimos la tabla que acabamos de crear mediante el uso de un objeto de conjunto de registros y escribimos lo siguiente para abrir la tabla y agregar una nueva fila : Set dbRst = dbs.OpenRecordset ( ” Exceldata ” ) dbRst.AddNew 9. Escribimos lo siguiente para obtener los valores del libro de Excel, guardarlos y actualizar el registro: xlSht.Range ( “A2 ” ) Seleccione dbRst.Fields ( 0 ) Value. = xlSht.Range ( ” A2 ” ) . Valor xlSht.Range ( ” B2 ” ) . Seleccione dbRst.Fields ( 1 ) . Valor = xlSht.Range ( ” B2 ” ) . Valor dbRst.Update 10. Para finalizar el procedimiento, escribimos el siguiente código de VBA : dbRst.Close dbs.Close xlBk.Close End Sub 11. Presionamos “F5 ” para ejecutar el procedimiento.