Resumen Mostrar estructura base de datos

Javier, lo que tienes que hacer es bastante trabajo, pero sencillo, a
saber:
Dada una conexion con una Base de datos....
Revisar la coleccion de Tablas (y por que no vistas?)
[Objeto Database].Tabledefs -----> para DAO
[Objeto Conexion].rdoTables -----> para RDO
Y cargar un ListBox con el resultado. Seria conveniente filtrar los
atributos de los objetos tabla para no incluir los objetos de sistema
(Propiedad Attributes, consultar Help).
En este ejemplo (de una aplicación mía) se realiza ese trabajo de un
origen de datos SQL utilizando DMO (Distributed Management Objets o DAO
segun el caso)

If Not DATAInspect Is Nothing Then
        For Each DATATable In DATAInspect.Tables
            If Not DATATable.SystemObject Then
                lstTablas.AddItem DATATable.Name
            End If
        Next
    Else
        For Each DAOTable In MiBase.TableDefs
            If DAOTable.Attributes = 0 Then
                lstTablas.AddItem DAOTable.Name
            End If
        Next
    End If

Y luego algo parecido con los atributos....

If Not DATATable Is Nothing Then
        For Each oTempColumn In DATATable.Columns
            With oTempColumn
                grdColumns.AddItem .Name & vbTab & .Datatype & vbTab &
.length & vbTab
& IIf(.Identity, "SI", "NO") & vbTab & IIf(.AllowNulls, "SI", "NO") &
vbTab & IIf(.InPrimaryKey,
"SI", "NO")
                ReDim Preserve aAtributo(i)
                aAtributo(i).Nombre = .Name
                aAtributo(i).Tamaño = .length
                aAtributo(i).Tipo = .PhysicalDatatype
                aAtributo(i).EsIdentity = .Identity
                aAtributo(i).EstaEnClave = .InPrimaryKey
                i = i + 1
            End With
        Next
    Else
        For Each oField In DAOTable.Fields
            With oField
                grdColumns.AddItem .Name & vbTab & FieldType(.Type) &
vbTab & .Size
& vbTab & IIf(.Attributes And dbAutoIncrField, "SI", "NO") & vbTab &
IIf(.AllowZeroLength,
"SI", "NO") & vbTab & IIf(IsInPrimaryKey(.Name), "SI", "NO")
                ReDim Preserve aAtributo(i)
                aAtributo(i).Nombre = .Name
                aAtributo(i).Tamaño = .Size
                aAtributo(i).Tipo = FieldType(.Type)
                aAtributo(i).EsIdentity = .Attributes And
dbAutoIncrField
                aAtributo(i).EstaEnClave = IsInPrimaryKey(.Name)
                i = i + 1
            End With
        Next
EN este caso cargo una grilla con las propiedades de los campos (quizás
no te sea util) y guardo la coleccion de atributos en un array de UDTs.
Las funciones FieldType() y IsInPrimaryKey() son propias y no vienen al
caso.

Lo que sigue es manejo de Strings. Deberás poner Combos con los
operadores (>,<,= LIKE, BETWEEN, etc) y definir los Joins, Groups y
Orders.
Lo de Excel lo dejo para otra oportunidad, cualquier cosa me lo
recuerdas y volvemos sobre el tema.
No tengo inconveniente en que me consultes particularmente .
Saludos

Adrian



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com