我想打开一个数据库,并列举出数据库中的用户表名。于是,我在窗体上添加一个按钮测试,
可是运行到Set objRs = objConn.OpenSchema(adSchemaTables),却弹出“类型不匹配”的错误。
请大侠帮忙,谢谢!Option Explicit
Dim strTableNames() As StringPrivate Sub Command1_Click()
    Call getAllTableName
    Dim intI As Integer
    For intI = 1 To UBound(strTableNames)
        Print strTableNames(intI)
    Next
End Sub
'列举数据库中的表名Public Sub getAllTableName()
    Dim objConn As ADODB.Connection
    Dim objRs As ADODB.Connection
    Dim intI As Integer, intCount As Integer  
    Set objConn = New ADODB.Connection
    objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test\DB\Test1.mdb;Persist Security Info=False"
    objConn.CursorLocation = adUseClient
    Set objRs = objConn.OpenSchema(adSchemaTables)
    objRs.Filter = "Table_type='TABLE'"
    intCount = objRs.RecordCount
    If intCount > 0 Then
        ReDim strTableNames(intCount)
        intI = 1
        While Not objRs.EOF
            strTableNames(intI) = objRs.Fields("Table_Name").Value
            objRs.MoveNext
            intI = intI + 1
        Wend
    End If
    Set objRs = Nothing
    Set objConn = Nothing
End Sub

解决方案 »

  1.   

    'Set objRs = objConn.OpenSchema(adSchemaTables)
    换成 Objrs.open "查询表的SQL语句",objConn,1,1
    我不太熟悉你这种语法。
    不过建议你用SQLDMO 这样简单点。
      

  2.   

    'Set objRs = objConn.OpenSchema(adSchemaTables)返回的是记录集
    ’Dim objRs As ADODB.Connection 这是你声明的
    改成Dim objRs As New ADODB.Recordset
      

  3.   

    同意楼主!将objRS  定义为新的数据集。即 Dim objRs As New ADODB.Recordset
      

  4.   

    同意 True1024(我的理想是成为一名军人)