Visual Basic - Urgente: Importar de Excel a Access

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 3 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Urgente: Importar de Excel a Access

Publicado por Vero (106 intervenciones) el 03/10/2005 13:13:18
Hola, a ver si me podeis ayudar, por favor.
Necesito importar una hoja de cálculo Excel a Access, a través de Visual Basic, claro. ¿Me podeis decir cómo se hace, por favor?

Un saludo y gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Urgente: Importar de Excel a Access

Publicado por ivan (463 intervenciones) el 04/10/2005 01:40:39
Hola que tal, espero esto te sirva, es una respuesta de hace tiempo relacionado un poco con lo que tu pretendes hacer

A ver si acaso esto te sirve... en este ejemplo se abre un archivo de excel y su contenido se vacía en una tabla de Access..

Private Sub Pasa_Archivo()
Dim Archivo As ADODB.Connection
Dim Tabla As ADODB.Recordset
Dim objExcel As excel.Application
Dim xlSheet As excel.Worksheet
Dim Salir As Boolean
Dim Valor As String
' abres el archivo en access en donde agregarás el de excel
Set Archivo = New ADODB.Connection
Set Tabla = New ADODB.Recordset
Archivo.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ejemplo.mdb;Persist Security Info=False;"
Archivo.Open
Tabla.Open "SELECT * FROM ejemplo1", Archivo, adOpenKeyset, adLockOptimistic
'abres el archivo de excel
Set objExcel = Nothing
Set objExcel = New excel.Application
objExcel.Workbooks.Open FileName:="c:\ejemplo.xls"
objExcel.Visible = False ' para que no se vea la pantalla de excel
' tienes que establecer un renglón inicial en tu archivo en excel
' como mencioné antes, el archivo en excel tiene que tener alguna similitud
' o seguir un mismo formato
Renglon = 2
With objExcel
Do
' de alguna manera tienes que definir cuántos registros vas a agregar
If .Cells(Renglon, 1) = "" Then
Salir = True
Else
Salir = False
Tabla.AddNew
Tabla("nombre") = .Cells(Renglon, 1)
Tabla("domicilio") = .Cells(Renglon, 2)
Tabla("telefono") = .Cells(Renglon, 3)
Tabla.Update
Renglon = Renglon + 1
End If
Loop Until Salir
End With
' terminado... la tabla ya tiene agregados los
' registros que estaban en excel, ahora se cierran las tablas
' y se libera la aplicación del excel
Tabla.Close
Archivo.Close
objExcel.Workbooks.Close
Set objExcel = Nothing
End Sub

Partimos de la suposicion que el archivo "ejemplo.xls" está ubicado en "C:\", ese archivo tiene que existir y tiene que estar de la siguiente manera (en el ejemplo del código que puse...)

Nombre Domicilio Teléfono
JUAN PEREZ AV. DE LA AMISTAD Nº 465 5698-6985
JOSE LOPEZ BLVD. LIBERTADORES Nº 987-A 6598-7896

O sea, la celda A1 contiene el texto "Nombre"

Al igual debe de existir un archivo en Access llamado "ejemplo.mdb", igualmente ubicado en "C:\", el cual debe contener una tabla llamada "ejemplo1".

Ya de ti dependerá controlar los errores en caso de que el archivo "ejemplo.xls" no exista y otras cosillas más..

Ojalá esto te sirva..
SALUDOS

Si acaso no le entiendes a algo no dudes en preguntar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente: Importar de Excel a Access

Publicado por Maria (31 intervenciones) el 11/01/2006 12:42:51
Esto funciona. Pero como se puede traspasar esta información cuando la conexión a la base de datos no es ADO (sino rdo o dao)

Es urgente...Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente: Importar de Excel a Access

Publicado por ivan (463 intervenciones) el 12/01/2006 20:18:13
Lamentablemente no sé como usar el RDO ni el DAO, pero no creo que sea complicado cambiar el código para que te funcione con esas formas de abrir los archivos...

Nada más cambia la forma de abrir la base de datos...

Cuando abro el archivo asi...

Set Archivo = New ADODB.Connection
Set Tabla = New ADODB.Recordset
Archivo.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ejemplo.mdb;Persist Security Info=False;"
Archivo.Open
Tabla.Open "SELECT * FROM ejemplo1", Archivo, adOpenKeyset, adLockOptimistic

Cambialo para abrirlo con RDO o con DAO...

Y luego cuando le pasas los datos

Tabla.AddNew
Tabla("nombre") = .Cells(Renglon, 1)
Tabla("domicilio") = .Cells(Renglon, 2)
Tabla("telefono") = .Cells(Renglon, 3)
Tabla.Update

Cambia a como se agregan registros en RDO y DAO

Espero esto te sirva... cualquier duda, estaré al pendiente, Suerte..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente: Importar de Excel a Access

Publicado por Maria (31 intervenciones) el 13/01/2006 13:16:54
Creo que ya se como hacerlo....

Muchas gracias y ya os contare.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente: Importar de Excel a Access

Publicado por Maria (31 intervenciones) el 26/01/2006 08:18:20
Sabe alguien alguna manera más automatica de hacer una exportación automatica a una tabla de excel sin tener que ir fila por fila ni columna por columna. El documento de excel que tengo es muy amplio y no siempre debe tener el mismo número de filas con datos.

Un saludo a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar