我用adodb.connection连接未知的access数据库,可是如何得到他的表名和字段名?

解决方案 »

  1.   

    Set wrk = DBEngine.Workspaces(0)
        Set gdb = wrk.OpenDatabase(path)
        For i = 0 To gdb.TableDefs.Count - 1
            Text1.Text = Text1.Text & gdb.TableDefs(i).Name & Chr(13) & Chr(10)
        Next i
      

  2.   

    刚刚漏了    
    Set wrk = DBEngine.Workspaces(0)
        Set gdb = wrk.OpenDatabase(path)
        For i = 0 To gdb.TableDefs.Count - 1
            Text1.Text = Text1.Text & gdb.TableDefs(i).Name & Chr(13) & Chr(10)
            For j = 0 To gdb.TableDefs(i).Fields.Count - 1
            Text2.Text = Text2.Text & gdb.TableDefs(i).Fields(j).Name & Chr(13) & Chr(10)
            Next j
        Next i
      

  3.   


    '----------------------------------------------------------------------------
    '
    'Author:lihonggen0
    'Date:2003-6-19
    '功能:获取access库中表的个数及表的名称
    '用ado怎样实现
    '工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)
    '----------------------------------------------------------------------------
    Private Sub Form_Load()
    Dim adoCN   As New ADODB.Connection                '定义数据库的连接
    Dim strCnn   As New ADODB.Recordset
    Dim I As Integer
       str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Northwind.MDB;Persist Security Info=False"
       adoCN.Open str1
             
       Set rstSchema = adoCN.OpenSchema(adSchemaTables)
         
       Do Until rstSchema.EOF
            If rstSchema!TABLE_TYPE = "TABLE" Then
               out = out & "Table  name:  " & _
                   rstSchema!TABLE_NAME & vbCr & _
                   "Table  type:  " & rstSchema!TABLE_TYPE & vbCr
                I = I + 1
            End If
            rstSchema.MoveNext
       Loop
       MsgBox I
       rstSchema.Close
         
       adoCN.Close
    Debug.Print out
    End Subhttp://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=8159
      

  4.   

    Rs_Colums.CursorLocation = adUseClient
                    Rs_Colums.Open "select top 1 * from 表名", Cn, adOpenStatic, adLockReadOnly
                    For I = 0 To Rs_Colums.Fields.Count - 1   ' 循环所有列
                        Debug.Print Rs_Colums.Fields(I).Name   '字段名
                        Debug.Print Rs_Colums.Fields(I).DefinedSize  '宽度
                    Next
      

  5.   

    Private Sub Form_Load()
    Dim adoCN   As New ADODB.Connection                '定义数据库的连接
    Dim strCnn   As New ADODB.Recordset
    Dim I As Integer
       str1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Northwind.MDB;Persist Security Info=False"
       adoCN.Open str1
             
       Set rstSchema = adoCN.OpenSchema(adSchemaTables)
         
       Do Until rstSchema.EOF
            If rstSchema!TABLE_TYPE = "TABLE" Then
               out = out & "Table  name:  " & _
                   rstSchema!TABLE_NAME & vbCr & _
                   "Table  type:  " & rstSchema!TABLE_TYPE & vbCr
                I = I + 1
            End If
            rstSchema.MoveNext
       Loop
       MsgBox I
       rstSchema.Close
         
       adoCN.Close
    Debug.Print out