Resumen Tabledef con ADO

Mensaje enviado por "Percy Oswaldo" <ariano76@hotmail.com>

Encontre la solucion a este problema, aquien le interese remito el codigo.... La clave esta en untilizar el OpenSchema del Objeto Connection, si alguien tiene alguna duda remitirla a mi correo personal... Es mi primera contribucion para con la lista. Saludos desde Lima - Perú

Option Explicit
Dim Con As New ADODB.Connection
Dim Rec As New ADODB.Recordset
Dim pSql$
Dim Fld As ADODB.Field
Function TipoCampo(ByVal intTipo As Integer) As String
    Select Case intTipo
        Case 2 'adSmallInt
            TipoCampo = "Entero"
        Case 3 'adInteger
            TipoCampo = "Entero Largo"
        Case 4 'adSingle
            TipoCampo = "Entero Simple"
        Case 5
            TipoCampo = "adDouble"
        Case 6 'adCurrency
            TipoCampo = "Moneda"
        Case 7 'adDate
            TipoCampo = "Fecha/Hora"
        Case 8
            TipoCampo = "adBStr"
        Case 11 'adBoolean
            TipoCampo = "Boolean"
        Case 12
            TipoCampo = "adVariant"
        Case 200 'adVarChar"
            TipoCampo = "Texto"
        Case 201 'adLongVarChar"
            TipoCampo = "Memo"
        Case 204
            TipoCampo = "adVarBinary"
        Case 205 'adLongVarBinary
            TipoCampo = "Objeto Ole"
    End Select
End Function

Private Sub Combo1_Click()
Dim Fila%, Colum%, j As Byte
pSql$ = "Select * from [" & Trim(Combo1.List(Combo1.ListIndex)) & "]"
Me.Caption = "Estructura de la Tabla :" & " " &
Combo1.List(Combo1.ListIndex)
Rec.Open pSql$, Con
    If MSFlxG.Rows > 2 Then
        For j = 3 To MSFlxG.Rows
            MSFlxG.RemoveItem (MSFlxG.Rows)
        Next j
    End If
With MSFlxG
Fila% = 1
        For Each Fld In Rec.Fields
            If Fila% < 2 Then
                .Row = Fila%
            Else
                .Rows = .Rows + 1
                .Row = .Rows - 1
            End If
            Colum% = 0
            .Col = .Cols - 3
            .Text = Fld.Name
            .Col = .Cols - 2
            .Text = TipoCampo(Fld.Type)
            .Col = .Cols - 1
            .Text = Fld.DefinedSize
            Fila% = Fila% + 1
        Next Fld
End With
Rec.Close
End Sub

Private Sub Form_Load()
With Con
    .Provider = "Microsoft.Jet.OleDB.3.51"
    .ConnectionString = "Data Source=C:\Archivos de
programa\DevStudio\VB\Nwind.mdb"
    .CursorLocation = adUseClient
    .Open , "admin"
End With
'xxxxxxxxx
Set Rec = Con.OpenSchema(adSchemaTables)
'xxxxxxxxx
With Rec
    While Not .EOF
        If .Fields("TABLE_TYPE") = "TABLE" Then
            If Left(Trim(.Fields("TABLE_NAME")), 4) <> "MSys" Then
                Combo1.AddItem .Fields("TABLE_NAME")
            End If
        End If
        .MoveNext
    Wend
End With
Rec.Close
End Sub

Private Sub Form_Unload(Cancel As Integer)
Con.Close
Set Rec = Nothing
Set Con = Nothing
End Sub



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com