Importar tabla access a excel

Solo disponible en BuenasTareas
  • Páginas : 2 (357 palabras )
  • Descarga(s) : 0
  • Publicado : 18 de octubre de 2010
Leer documento completo
Vista previa del texto
Importar tabla Access a Excel
Buscando por la red, encontré esta macro que realmente muestra cómo importar una tabla de una base de datos Access, a una hoja Excel. Verhttp://www.xltoday.net/vba_ejemplos_accessaexcel.asp Evidentemente esta maniobra también puede realizarse desde los menús del propio programa Access. ¿Pero qué pasa si tenemos que acceder a un archivo Access, y no tenemos elprograma Access instalado? Es en ese momento cuando podemos recurrir al código VBA, y programar una macro que acceda a la BD y recupere los registros de una tabla.

En el caso de que nos diera esteerror, seria porque no tenemos referenciadas las librerías ADO. Así que una vez detenida la ejecución (ya que si no se puede incorporar referencias), se realiza lo siguiente:

D:\VBA\leer BD access conVBA desde excel.doc

Página 1 de 3

Solo hay que tocar la macro para especificar el nombre de la Base de datos mdb y el nombre de la tabla. Fuente de la macro:
Sub leer_bd_neptuno() 'dimensionesDim datConnection As ADODB.Connection Dim recSet As ADODB.Recordset Dim strDB, strSQL As String Dim strTabla As String Dim lngTablas As Long Dim i As Long 'elegir uno de estas dos rutas al archivoAccess 'strDB = ThisWorkbook.Path & "" & "db.mdb" 'strDB = "C:\vba\db.mdb" 'si en otra carpeta strDB = "D:\JMP\access\neptuno.mdb" 'si en otra carpeta 'nombre de la tabla del archivo Access strTabla ="clientes" 'crear la conexión Set datConnection = New ADODB.Connection Set recSet = New ADODB.Recordset datConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source =" & strDB & ";" 'consultaSQL strSQL = "SELECT * FROM " & strTabla & "" recSet.Open strSQL, datConnection 'copiar datos a la hoja ActiveSheet.Cells(2, 1).CopyFromRecordset recSet 'copiar rótulos lngCampos =recSet.Fields.Count For i = 0 To lngCampos - 1 ActiveSheet.Cells(1, i + 1).Value = recSet.Fields(i).Name Next 'desconectar recSet.Close: Set recSet = Nothing datConnection.Close: Set datConnection = Nothing End Sub...
tracking img