Importar hoja excel a access usando código vb (24/08/04) Necesito crear una aplicación vb6.0 para importar varias hojas excel 2000 a access2000 usando código vb. ¿Podrías enviarme ejemplos con código? Muchas gracias. Me han hablado de crear macro en access y utilizarla desde vb pero no se como se llama a la macro desde vb, ni como se construiría la macro
'EN UN FORMULARIO CREA UN BOTON Command1 Y PRUEBA ES TE EJEMPLO QUE Exporta el contenido de una base de datos Access 2000 mediante DAO 3.6 a Excel CREA UNA BD ACCES CON EL NOMBRE db1 tabla1 "NOMBRE" "direccion" "poblacion" "cantidad" Y agregale valores Option Explicit Private Sub Command1_Click() Dim H As Long 'Horizontal Dim V As Long 'Vertical Dim MiBase As Database Dim MiTabla As Recordset On Error GoTo ErrorExcel Dim objExcel As Excel.Application Set MiBase = OpenDatabase(CurDir() & "db1.mdb") Set MiTabla = MiBase.OpenRecordset("SELECT * FROM Tabla1 ORDER BY Nombre ASC", dbOpenDynaset) If MiTabla.RecordCount = 0 Then MsgBox "La base de datos esta vacia" Exit Sub End If Set objExcel = New Excel.Application objExcel.Visible = True 'determina el numero de hojas que se mostrara en el Excel objExcel.SheetsInNewWorkbook = 1 'Crea el Libro objExcel.Workbooks.Add With objExcel.ActiveSheet .Range(.Cells(1, 1), .Cells(1, 4)).Borders.LineStyle = xlContinuous .Cells(3, 1) = "NOMBRE" .Cells(3, 2) = "DIRECCION" .Cells(3, 3) = "POBLACION" .Cells(3, 4) = "CANTIDAD" .Range(.Cells(3, 1), .Cells(3, 4)).Font.Bold = True .Columns("D").HorizontalAlignment = xlHAlignRight .Columns("A").ColumnWidth = 30 .Columns("B").ColumnWidth = 30 .Columns("C").ColumnWidth = 30 .Columns("D").ColumnWidth = 15 End With objExcel.ActiveSheet.Cells(1, 1) = "BASE DE DATOS" objExcel.ActiveSheet.Range(objExcel.ActiveSheet.Cells(1, 1), objExcel.ActiveSheet.Cells(1, 4)).HorizontalAlignment = xlHAlignCenterAcrossSelection With objExcel.ActiveSheet.Cells(1, 1).Font .Color = vbRed .Size = 14 .Bold = True End With V = 4 H = 1 Do While Not MiTabla.EOF DoEvents objExcel.ActiveSheet.Cells(V, H) = MiTabla.Fields!Nombre objExcel.ActiveSheet.Cells(V, H + 1) = MiTabla.Fields!Direccion objExcel.ActiveSheet.Cells(V, H + 2) = MiTabla.Fields!Poblacion objExcel.ActiveSheet.Cells(V, H + 3) = MiTabla.Fields!Cantidad V = V + 1 MiTabla.MoveNext Loop V = V + 3 objExcel.Range(objExcel.Cells(V, 1), objExcel.Cells(V, 4)).Borders.LineStyle = xlContinuous objExcel.ActiveSheet.Range(objExcel.ActiveSheet.Cells(V, 1), objExcel.ActiveSheet.Cells(V, 4)).HorizontalAlignment = xlHAlignCenterAcrossSelection objExcel.ActiveSheet.Cells(V, 1) = "DATOS IMPORTADOS DE EXCEL" MiBase.Close Set objExcel = Nothing Exit Sub ErrorExcel: MsgBox "Ha ocurrido un error de conexión con Excel." _ & Chr(13) & Chr(13) & "Error : " & Err.Number _ & Chr(13) & "Info : " & Err.Description _ & Chr(13) & "Objeto : " & Err.Source _ & Chr(13) & Chr(13) & "Envie este error a la dirección prog1000@yahoo.com " _ & "y le indicaran la solución a su problema.", vbCritical, "Error al conectar con Excel" End Sub
Muchas gracias, lo probare ahora mismo Saludos
Que paso te sirvió putualiza la respuesta
Hola amigo, la verdad es que al principio ha dado algún problemilla por el tema del excel 2000 y el 97 pero una vez arreglado el problema funciona perfectamente. Estoy muy agradecido por tu ayuda. Aprovechándome de tu amabilidad te quería preguntar el siguiente paso. Quiero que los datos que he pasado de access a la hoja de calculo de excel se muestran de una forma determinada y no se como hacerlo, si quieres te envío los ficheros de access y como los quiero en excel y me dices... yo me estoy pegando con ello pero no lo consigo... Un saludo
Ok envíamelos y dime de que forma quieres quieres mostrarlo mi correo rodolfo1245@hotmail.com