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 :
Dim xlApp As Excel.Application
Dim xlBk As Excel.Workbook
Dim xlSht As Excel.Worksheet
Dim dbRst As Recordset
Dim dbs As Database
Dim sqlstr As String
Public Sub ImportPreVtas()
Set dbs = CurrentDb
Set xlApp = Excel.Application
Set xlBk = xlApp.Workbooks.Open(“F:\Proyectos\pruebappto.xlsx”)
Set xlSht = xlBk.Sheets(1)
sqlstr = “CREATE TABLE Exceldata(columnOne string, columnTwo string)”
DoCmd.SetWarnings False
DoCmd.RunSQL sqlstr
Set dbRst = dbs.OpenRecordset(“Exceldata”)
dbRst.AddNew
xlSht.Range(“A3”).Select
dbRst.Fields(0).Value = xlSht.Range(“A3”).Value
xlSht.Range(“B3”).Select
dbRst.Fields(1).Value = xlSht.Range(“B3”).Value
dbRst.Update
dbRst.Close
dbs.Close
xlBk.Close
End Sub
4. Presionamos «F5 » para ejecutar el procedimiento.