Codigo en VB para importar archivo excel a access
EStoy programando una aplicación que ha de leer archivos de excel con extensión .xls, e importarlos a access para aptovechar las ventajas que proporcionan las bases de datos en cuanto al multiple acceso. Agradeceria infinitamente, cualquier tipo de codigo, pues es lo primero q me toca hacer en VB y estoy bastante pegada....
acabo de enviar a tu email un codigo fuente que yo utlicé para el mismo fin :)
saludos desde Colombia
saludos desde Colombia
saves soy estudiante de instituto tecnologico en tumbes-peru y mi carrera es de computacion e informatica, llevo recien una semana y lo que nos enseñan es sobre programacion en visual basic, y lo que quisiera es obtener informacion cualiquiera que tenga que ver con visual basic.
te agradeseria mucho que me enviaras informacion de vb sobre todo codificacion.
escribeme a mi correo electronico.
[email protected]
te agradeseria mucho que me enviaras informacion de vb sobre todo codificacion.
escribeme a mi correo electronico.
[email protected]
Hola!!, ante todo gracias x leer esta nota :-) he visto que has conseguido importar datos de una hoja excel a access desde visual y estoy bastante flojo en visual... si me puedes ayudar te lo agradeceria mucho ^_^ MuCHaS GrACiAs
Yo necesito enviar de un archivo txt a acces, me gustaria saber si tienes el codigo
Hola. Tengo el mismo problema porfavor ayudame, y necesito hacerlo de Access a Excel.
De antemano muchas gracias.
De antemano muchas gracias.
Hola, mira, estoy haciendo lo mismo que tú y tengo algunos avances...
Dime, como vas en ese tema. Podríamos ayudarnos mutuamente...
Te adjunto algo de código:
Dim xls As Excel.Application
Screen.MousePointer = 11
i = 1
Set xls = CreateObject("Excel.Application")
xls.Workbooks.Open Archivo_Cartola
xls.Visible = True
For Each works In Worksheets
FConCarImp.ListHojas.AddItem works.Name
Next works
Dime, como vas en ese tema. Podríamos ayudarnos mutuamente...
Te adjunto algo de código:
Dim xls As Excel.Application
Screen.MousePointer = 11
i = 1
Set xls = CreateObject("Excel.Application")
xls.Workbooks.Open Archivo_Cartola
xls.Visible = True
For Each works In Worksheets
FConCarImp.ListHojas.AddItem works.Name
Next works
Yo tambien estoy trabajando en algo parecido.
Tengo una tabla en access con un monton de campos y quiero importar datos de una tabla en excel.
Creo que es mejor tratar al fichero de excel como una base de datos y no abrirlo como aplicacion excel, ya que es mucho mas lento y mas complicado.
Abro dos conexiones al bd excel y access
estraigo en un recordsource todos los datos de excel y les voy introducciendo en la base de datos de Access.
adjunto el codigo por si oos resulta util
Public Sub importardatos()
Dim fichero_importar
Dim i
Dim cna As ADODB.Connection
Dim rsa As ADODB.Recordset
Dim cne As ADODB.Connection
Dim rse As ADODB.Recordset
\'Selecciona el fichero a importar
With Main.CommonDialog1
.InitDir = Directorio
.ShowOpen
End With
If Existe(Main.CommonDialog1.FileName) Then
fichero_importar = Main.CommonDialog1.FileName
Else
MsgBox ("El fichero selecionado no es valido")
Return
End If
\'Abre la base de datos de Access
Set cna = New ADODB.Connection
Set rsa = New ADODB.Recordset
cna.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Main.Fichero_datos & ";Persist Security Info=False"
cna.Open
\'Abre el fichero excel
Set cne = New ADODB.Connection
Set rse = New ADODB.Recordset
cne.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fichero_importar & ";Extended Properties=excel 8.0;Persist Security Info=False"
cne.Open
\' Extrae todos los datos del fichero
Set rse.ActiveConnection = cne
rse.Source = "SELECT * from [hoja1$]"
rse.Open
Do Until rse.EOF
Set rsa.ActiveConnection = cna
rsa.Source = "SELECT * from tblapuntes where fecha=" & rse.Fields("fecha")
rsa.LockType = adLockOptimistic
rsa.Open
\' Si no hay ningun campo de ese dia lo crea
If rsa.EOF Then
rsa.AddNew
For Each i In rse.Fields
On Error Resume Next
rsa.Fields(i.Name) = i
Next i
rsa.Update
rsa.Close
End If
rse.MoveNext
Loop
End Sub
Tengo una tabla en access con un monton de campos y quiero importar datos de una tabla en excel.
Creo que es mejor tratar al fichero de excel como una base de datos y no abrirlo como aplicacion excel, ya que es mucho mas lento y mas complicado.
Abro dos conexiones al bd excel y access
estraigo en un recordsource todos los datos de excel y les voy introducciendo en la base de datos de Access.
adjunto el codigo por si oos resulta util
Public Sub importardatos()
Dim fichero_importar
Dim i
Dim cna As ADODB.Connection
Dim rsa As ADODB.Recordset
Dim cne As ADODB.Connection
Dim rse As ADODB.Recordset
\'Selecciona el fichero a importar
With Main.CommonDialog1
.InitDir = Directorio
.ShowOpen
End With
If Existe(Main.CommonDialog1.FileName) Then
fichero_importar = Main.CommonDialog1.FileName
Else
MsgBox ("El fichero selecionado no es valido")
Return
End If
\'Abre la base de datos de Access
Set cna = New ADODB.Connection
Set rsa = New ADODB.Recordset
cna.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Main.Fichero_datos & ";Persist Security Info=False"
cna.Open
\'Abre el fichero excel
Set cne = New ADODB.Connection
Set rse = New ADODB.Recordset
cne.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fichero_importar & ";Extended Properties=excel 8.0;Persist Security Info=False"
cne.Open
\' Extrae todos los datos del fichero
Set rse.ActiveConnection = cne
rse.Source = "SELECT * from [hoja1$]"
rse.Open
Do Until rse.EOF
Set rsa.ActiveConnection = cna
rsa.Source = "SELECT * from tblapuntes where fecha=" & rse.Fields("fecha")
rsa.LockType = adLockOptimistic
rsa.Open
\' Si no hay ningun campo de ese dia lo crea
If rsa.EOF Then
rsa.AddNew
For Each i In rse.Fields
On Error Resume Next
rsa.Fields(i.Name) = i
Next i
rsa.Update
rsa.Close
End If
rse.MoveNext
Loop
End Sub
Esta página les puedes servir para pasar datos de excel a acces.............
http://espasoft.kaos.es/2000VB/Excel.htm
Y para exportar una tabla de acces y a Excel el código siguiente les puede servir muy bien:
Private Sub cmdExpEmp_Click()
Dim objDb As Object
Set objDb = GetObject(App.Path & "\Encuesta.mdb")
objDb.docmd.TransferSpreadsheet 1, 8, "ConEmpresa", App.Path & "\Reportes\RptxEmpresa.xls", True
\'acExport= 1 , acSpreadsheetTypeExcel97 = 8
objDb.Quit
Set objDb = Nothing
MsgBox "Los datos se han guardado en :" & App.Path & "\Reportes\RptxEmpresa.xls"
End Sub
http://espasoft.kaos.es/2000VB/Excel.htm
Y para exportar una tabla de acces y a Excel el código siguiente les puede servir muy bien:
Private Sub cmdExpEmp_Click()
Dim objDb As Object
Set objDb = GetObject(App.Path & "\Encuesta.mdb")
objDb.docmd.TransferSpreadsheet 1, 8, "ConEmpresa", App.Path & "\Reportes\RptxEmpresa.xls", True
\'acExport= 1 , acSpreadsheetTypeExcel97 = 8
objDb.Quit
Set objDb = Nothing
MsgBox "Los datos se han guardado en :" & App.Path & "\Reportes\RptxEmpresa.xls"
End Sub
