Cómo recuperar una tabla de Access en Excel con DAO

Seleccione idioma Seleccione idioma
Id. de artículo: 146406 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

En las versiones de Microsoft Excel enumerados anteriormente, puede utilizar objetos de acceso a datos (DAO) en Visual Basic para aplicaciones para recuperar una tabla de Microsoft Access.

Para proporcionar un ejemplo de cómo se puede utilizar DAO para recuperar una tabla de Microsoft Access, la macro descrita en este artículo utiliza la base de datos Neptuno que envió con Microsoft Office Professional para Windows 95, versión 7.0 y Microsoft Office 97 Professional para Windows. Si seleccionó las opciones predeterminadas cuando instaló Microsoft Office Professional para Windows 95, versión 7.0, la base de datos se encuentra en:
   \MSOffice\Access\Samples\Northwind.mdb
				
si seleccionó las opciones predeterminadas cuando instaló Microsoft Office 97 Professional para Windows, la base de datos se encuentra en:
   \Program Files\Microsoft Office\Office\Samples\Northwind.mdb
				
si la base de datos Northwind se encuentra en una carpeta diferente en el equipo, deberá modificar el código proporciona a continuación antes de ejecutarla.

Para utilizar DAO en la macro, debe hacer referencia la biblioteca de objetos DAO de Microsoft o puede recibir el error "definido por el usuario tipo no definido". Para hacer referencia a esta biblioteca en Microsoft Excel version 7.0, activar una hoja de módulo, haga clic en referencias en el menú Herramientas y Active la opción de "Biblioteca de objetos de Microsoft DAO 3.0". Para hacer referencia a esta biblioteca en Microsoft Excel version 97, haga clic en referencias en el menú Herramientas en el Editor de Visual Basic y compruebe la "biblioteca de objetos de Microsoft DAO 3.5".

Más información

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos. Para recuperar una tabla de Microsoft Access, siga estos pasos:

  1. Establecer un objeto Database.
  2. Establecer un objeto Recordset.
  3. Recuperar los encabezados (si lo desea).
  4. Recuperar los datos de la tabla.
Después de recuperan los datos, debe cerrar todos los objetos abiertos emitiendo comandos .Close.

Para recuperar una tabla desde Microsoft Access mediante programación, utilice el siguiente de Visual Basic para código de aplicaciones:
Sub GetTable()
'This sub will retrieve all the data in the "Customers" table in
'Northwind

   'Declare variables
   Dim Db As Database
   Dim Rs As Recordset
   Dim Ws As Object
   Dim i As Integer
   Dim Path as String

   'This line will define the Object "Ws" as Sheets("Sheet1")
   'The purpose of this is to save typing Sheets("Sheet1")
   'over and over again
   Set Ws = Sheets("Sheet1")

   'Set the Path to the database. This line is useful because
   'if your database is in another location, you just need to change
   'it here and the Path Variable will be used throughout the code
   Path = "c:\msoffice\access\samples\northwind.mdb"

   'This set of code will activate Sheet1 and clear any existing data
   'After clearing the data it will select cell A1
   Ws.Activate
   Range("A1").Activate
   Selection.CurrentRegion.Select
   Selection.ClearContents
   Range("A1").Select

   'Set the Database, and RecordSet  This Table exists in the database
   Set Db = Workspaces(0).OpenDatabase(Path, ReadOnly:=True)

   'This will set the RecordSet to all records in the Customers table
   Set Rs = Db.OpenRecordset("Customers")

   'You could instead set the RecordSet to, for example, the records
   'where the Country Code is "UK", without quotes. To do this, replace
   'the line above: Set Rs = Db.OpenRecordset("Customers") with the
   'following:
   '
   'Set Rs = _
   'Db.OpenRecordset("SELECT * FROM Customers WHERE Country = 'UK';")


   'This loop will collect the field names and place them in the first
   'row starting at "A1"
   For i = 0 To Rs.Fields.Count - 1
      Ws.Cells(1, i + 1).Value = Rs.Fields(i).Name
   Next I

   'The next line simply formats the headers to bold font
   Ws.Range(Ws.Cells(1, 1), Ws.Cells(1, Rs.Fields.Count)).Font.Bold=True

   'The next line will get the data from the recordset and copy it
   'into the Worksheet (Sheet1).
   Ws.Range("A2").CopyFromRecordset Rs

   'This next code set will just select the data region and
   'auto-fit the columns
   Sheets("Sheet1").Select
   Range("A1").Select
   Selection.CurrentRegion.Select
   Selection.Columns.AutoFit
   Range("A1").Select

   Rs.Close
   Db.Close
End Sub
				

Referencias

Para obtener más información acerca de acceso a datos, haga clic en la ficha Índice de la Ayuda de Microsoft Excel, escriba el texto siguiente
acceso a datos en DAO
y, a continuación, haga doble clic en el texto seleccionado para ir al tema "Acceso a externos bases de datos con DAO".

Propiedades

Id. de artículo: 146406 - Última revisión: miércoles, 11 de octubre de 2006 - Versión: 2.3
La información de este artículo se refiere a:
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
Palabras clave: 
kbmt kbdtacode kbhowto kbinterop kbprogramming KB146406 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 146406
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com