据我所知,不能实现,Ado对象模型没有Table对象。我今晚也遇到这个问题,后来还是用dao写的。关注!

解决方案 »

  1.   


    Private Sub cmdPrint_Click()
    Dim adoConnection As ADODB.Connection
    Dim adoRsFields As ADODB.Recordset
    Dim sConnection As String
    Dim sCurrentTable As String
    Dim sNewTable As String
    On Error Resume Next' get the name and location of the Data Base
    CommonDialog1.DialogTitle = "Select the DataBase to map"
    CommonDialog1.ShowOpen
    If CommonDialog1.FileName = "" Then Exit SubSet adoConnection = New ADODB.Connection
    sConnection = "Provider=Microsoft.Jet.OLEDB.3.51;" _
    & "Data Source=" & CommonDialog1.FileName
    adoConnection.Open sConnection
    Set adoRsFields = adoConnection.OpenSchema(adSchemaColumns)
    sCurrentTable = ""
    sNewTable = ""' Get the location of the output print file
    CommonDialog1.Filter = "*.txt|*.txt"
    CommonDialog1.FileName = ""
    CommonDialog1.DialogTitle = "Define the output file"
    CommonDialog1.CancelError = True
    CommonDialog1.ShowSave ' Where to output the file
    If CommonDialog1.FileName = "" Then Exit Sub
    Open CommonDialog1.FileName For Output As #1
    Print #1, " "
    Print #1, Now & " " & sConnection
    Print #1, ""Do Until adoRsFields.EOF
    sCurrentTable = adoRsFields!TABLE_NAME
    If (sCurrentTable <> sNewTable) Then
    sNewTable = adoRsFields!TABLE_NAME
    Print #1, ""
    Print #1, "Table: " & adoRsFields!TABLE_NAME
    End If
    If Left(UCase(adoRsFields!TABLE_NAME), 7) <> "MSYSMOD" Then
    Print #1, Tab(8); " Field: " & adoRsFields!COLUMN_NAME' the following statements will print Field characteristicsPrint #1, Tab(20); "TABLE_CATALOG: " & adoRsFields!TABLE_CATALOG
    Print #1, Tab(20); "TABLE_SCHEMA : " & adoRsFields!TABLE_SCHEMA
    Print #1, Tab(20); "TABLE_NAME : " & adoRsFields!TABLE_NAME
    Print #1, Tab(20); "COLUMN_NAME : " & adoRsFields!COLUMN_NAME
    Print #1, Tab(20); "COLUMN_GUID : " & adoRsFields!COLUMN_GUID
    Print #1, Tab(20); "COLUMN_PROPID: " & adoRsFields!COLUMN_PROPID
    Print #1, Tab(20); "ORDINAL_POSITION: " & adoRsFields!ORDINAL_POSITION
    Print #1, Tab(20); "COLUMN_HASDEFAULT: " & adoRsFields!COLUMN_HASDEFAULT
    Print #1, Tab(20); "COLUMN_DEFAULT: " & adoRsFields!COLUMN_DEFAULT
    Print #1, Tab(20); "COLUMN_FLAGS: " & adoRsFields!COLUMN_FLAGS
    Print #1, Tab(20); "IS_NULLABLE: " & adoRsFields!IS_NULLABLE
    Print #1, Tab(20); "DATA_TYPE: " & adoRsFields!DATA_TYPE
    Print #1, Tab(20); "TYPE_GUID: " & adoRsFields!TYPE_GUID
    Print #1, Tab(20); "CHARACTER_MAXIMUM_LENGTH: " & adoRsFields!CHARACTER_MAXIMUM_LENGTH
    Print #1, Tab(20); "CHARACTER_OCTET_LENGTH: " & adoRsFields!CHARACTER_OCTET_LENGTH
    Print #1, Tab(20); "NUMERIC_PRECISION: " & adoRsFields!NUMERIC_PRECISION
    Print #1, Tab(20); "NUMERIC_SCALE: " & adoRsFields!NUMERIC_SCALE
    Print #1, Tab(20); "DATETIME_PRECISION: " & adoRsFields!DATETIME_PRECISION
    Print #1, Tab(20); "CHARACTER_SET_CATALOG: " & adoRsFields!CHARACTER_SET_CATALOG
    Print #1, Tab(20); "CHARACTER_SET_SCHEMA: " & adoRsFields!CHARACTER_SET_SCHEMA
    Print #1, Tab(20); "CHARACTER_SET_NAME: " & adoRsFields!CHARACTER_SET_NAME
    Print #1, Tab(20); "COLLATION_Catalog: " & adoRsFields!COLLATION_CATALOG
    Print #1, Tab(20); "COLLATION_SCHEMA: " & adoRsFields!COLLATION_SCHEMA
    Print #1, Tab(20); "COLLATION_NAME: " & adoRsFields!COLLATION_NAME
    Print #1, Tab(20); "DOMAIN_CATALOG: " & adoRsFields!DOMAIN_CATALOG
    Print #1, Tab(20); "DOMAIN_SCHEMA: " & adoRsFields!DOMAIN_SCHEMA
    Print #1, Tab(20); "DOMAIN_NAME: " & adoRsFields!DOMAIN_NAME
    Print #1, Tab(20); "DESCRIPTION: " & adoRsFields!Description
    End If
    adoRsFields.MoveNext
    Loop
    Close #1
    adoRsFields.Close
    Set adoRsFields = Nothing
    adoConnection.Close
    Set adoConnection = Nothing
    End Sub枚举所有表名和字段