Tal vez el siguiente código te ayude:
Se encarga de abrir una base de datos (en este caso "BIBLIO.MDB") y graba
todas sus tablas, con cada uno de sus campos y registros en archivos con el
nombre de la tabla y extensión .TXT.
Parto del entendido que:
* Usas Windows 95, 98 o NT
* Has establecido la referencia a Microsoft Data Access Objects 3.5
* No importa qué base de datos le pongas, ni la cantidad de tablas que
tenga, ni la cantidad de campos que haya en la base de datos.
Lo hice al vapor, de modo que puede tener errores. Sin embargo, puede ser
una buena base. De facto lo probé y no me dio errores (mas que en algunas
estructuras especiales que están contenidas en Biblio.MDB que no se pueden
leer). De cualquier manera, el programa cuenta con una verificación de
errores y no detiene su ejecución.
------------------------------------------
Private Sub Command1_Click()
' Var
Dim db As Database
Dim rs As Recordset
Dim tbl As TableDef
Dim fld As Field
Dim fil As Integer
Dim strDelim As String
Dim strComa As String
' Captura de errores
Screen.MousePointer = vbHourglass
On Error Resume Next
' Abre la base de datos
Set db = DBEngine.Workspaces(0).OpenDatabase("BIBLIO.MDB", False, True)
' Lee cada tabla
For Each tbl In db.TableDefs
Set rs = db.OpenRecordset(tbl.Name, dbOpenSnapshot)
If Err.Number = 0 Then
Me.Print tbl.Name;
' Abre el archivo de texto
Open tbl.Name & ".TXT" For Output As #1
' Graba los encabezados (Son los nombres de los campos en sí)
strComa = ""
For Each fld In rs.Fields
Print #1, strComa & fld.Name;
strComa = ", "
Next fld
Print #1, ""
' Ahora graba cada dato
While Not rs.EOF
strComa = ""
For Each fld In rs.Fields
Select Case fld.Type
Case dbText, dbChar, dbMemo, dbDate, dbTime
strDelim = Chr(34)
Case Else
strDelim = ""
End Select
' Graba el texto en el archivo
Print #1, strComa & strDelim & fld.Value & strDelim;
strComa = ", "
Next fld
Print #1, ""
Me.Print ".";
rs.MoveNext
Wend
' Cierra el archivo de texto
Close #1
' Cierra el snapshot y la base de datos
rs.Close
Set rs = Nothing
Me.Print "¡Finalizada la tabla!"
Else
MsgBox Err.Description, vbExclamation, "Error " & Err.Number
Err.Number = 0
End If
Next tbl
db.Close
Set db = Nothing
' ¡Ya terminó!
On Error GoTo 0
Screen.MousePointer = vbDefault
MsgBox "¡Listo!"
End Sub
-------------------------------------------
Espero que te sea de utilidad...
¡SALUDOS!
Tron.BAS