Hola!
Te voy a contestar con algo que ya puse en otro foro, y es respecto al método OpenSchema del ADODB.Conection, que resulta interesante referido a tu pregunta pues permite determinar las propiedades de una base de datos sin conocer nada de antemano, ni el número o nombre de tablas
El código sería algo como:
Código:
Public WithEvents cnn As ADODB.Connection
Dim listado As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & App.Path & "\" & base
Set listado = cnn.OpenSchema(adSchemaColumns)
consulta.Open "SELECT * FROM " & listado!TABLE_NAME , cnn, adOpenDynamic, adLockOptimistic
En este caso vas a tener en el recordset
listado la lista con los nombres de las tablas que compone la tabla, y el nombre de las columnas o fields de cada una.
La sintaxis gral. de Schema es:
Set recordset = connection.OpenSchema (QueryType, Criteria, SchemaID)
Tenes varias opciones de QueryType: adSchemaColumns (que usamos arriba), adSchemaIndexes, adSchemaConstraintTableUsage, y otros. De acuerdo al QueryType son los datos de la base que podes acceder.
Podes buscar mas información en el Help del Microsoft ActiveX Data Object.
Saludos.