Importar archivos de excel

Necesito saber como poder importar un archivo de excel a una tabla en access usando visual basic.

1 Respuesta

Respuesta
1
Yo para trabajar con Excel lo que hago es crear una nueva instancia del Excel y abro los libros que deseo y obtengo los datos de las celdas.
Esto parece muy técnico así que te lo explico con un pequeño proyecto que he creado:
(En el proyecto utiliza Excel 97 y Access 97 y esta desarrolado en VB6)
1º Creamos una archivo de excel del que extraeremos los datos, en la que la primera columna de la primera hoja tiene los valores 1,2,3,4,... 16 y la segunda columna A, B, C, DE, ... P
2º Creamos un nuevo proyecto en VB6 y al proyecto le añadimos las referencias Microsoft DAO 3.51 Object Lybrary y Microsoft Excel 8.0 Object Library (si no te aparece busca el archivo excel8. Olb que es al que hay que hacer referencia)
3º Creamos un nuevo formulario con un command button al que nombramos cmbImportar
4º Este seria el código del formulario:
Option explicit
Private Sub cmdImportar_Click()
Dim wrk As Workspace
Dim db As Database
Dim tb As TableDef
Dim fd As Field
Dim rc As Recordset
Dim appEx As New Excel.Application
Dim wb As Workbook
Dim sh As Worksheet
Dim Indice As Long
'Comprobamos si existe la base de datos y la eliminamos si existe
If Dir(App.Path & "\" & "prueba.mdb") <> "" Then Kill (App.Path & "\" & "prueba.mdb")
'Creamos el espacio de trabajo y la base de datos
Set wrk = DBEngine.CreateWorkspace("", "Admin", "", dbUseJet)
Set db = wrk.CreateDatabase(App.Path & "\" & "prueba.mdb", dbLangGeneral)
'Creamos la tabla con sus campos
Set tb = db.CreateTableDef("Excel")
'Creamos el primer campo y lo añadimos a la tabla
Set fd = tb.CreateField("Numeros", dbLong)
tb.Fields.Append fd
'Creamos el segundo campo y lo añadimos a la tabla
Set fd = tb.CreateField("Letras", dbText, 50)
tb.Fields.Append fd
'añadimos la tabla a la base de datos
db.TableDefs.Append tb
'Abrimos el recordset
Set rc = db.OpenRecordset("Excel")
'Abrimos el libro donde tenemos los datos
appEx.Visible = False
Set wb = appEx.Workbooks.Open(App.Path & "\" & "libro1.xls")
Set sh = wb.Sheets(1)
'Ponemos un bucle para que recorra las celdas de la hoja
For Indice = 1 To 16
rc.AddNew
rc.Fields("Numeros").Value = sh.Cells(Indice, "A").FormulaR1C1
rc.Fields("Letras").Value = sh.Cells(Indice, "B").FormulaR1C1
'Asentamos el registro
rc.Update
Next Indice
'Cerramos todos los objetos que hemos utilizado
Set sh = Nothing
'Cerramos el workbook, pero le ponemos como si ya estuviera guardado para que no te pregunte si desea guardarlo
wb.Saved = True
wb.Close
Set wb = Nothing
appEx.Quit
Set appEx = Nothing
Set fd = Nothing
Set tb = Nothing
db.Close
wrk.Close
Set db = Nothing
Set wrk = Nothing
MsgBox "Proceso terminado"
End Sub
Al pulsar el cmbImportar el código lo que hace es crear una nueva base de datos con la tabla excel en la que va agregando los registros del archivo que hemos creado antes.(El archivo de excel debe estar en el mismo directorio que el proyecto, la base de datos se crea en el mismo directorio)
Si quieres que te mande este proyecto me pasas tu e-mail y te lo mando.
Espero haberte orientado sobre el asunto. Si tienes alguna duda o pregunta no dudes en hacérmela llegar, estaré encantado en intentar ayudarte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas