access数据库创建一个表,Text3是输入的表名称,我想判断数据 库中是否存在此表名称以下代码怎么修改Dim  cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.Open "Provider=Microsoft.ace.OLEDB.12.0;Data Source=" & App.Path & "\storage.accdb" & ";Persist Security Info=False"
Set rs = cn.OpenSchema(adSchemaTables)
If rs!TABLE_NAME = Text3.Text Then
MsgBox "存在此表名"
Exit Sub
End If

解决方案 »

  1.   

    读 Scheme 表即可: Dim cnn1 As ADODB.Connection
    Dim rstSchema As ADODB.Recordset
    Dim strCnn As String

    Set cnn1 = New ADODB.Connection
    strCnn = "Provider=Microsoft.ace.OLEDB.12.0;Data Source=" & App.Path & "\storage.accdb" & ";Persist Security Info=False"
    cnn1.Open strCnn

    Set rstSchema = cnn1.OpenSchema(adSchemaTables)

    Do Until rstSchema.EOF
    Debug.Print "Table name: " & _
    rstSchema!TABLE_NAME & vbCr & _
    "Table type: " & rstSchema!TABLE_TYPE & vbCr
    rstSchema.MoveNext
    Loop
    rstSchema.Close

    cnn1.Close
      

  2.   

    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    cn.Open "Provider=Microsoft.ace.OLEDB.12.0;Data Source=" & App.Path & "\storage.accdb" & ";Persist Security Info=False"
    Set rs = cn.OpenSchema(adSchemaTables)Do Until rs.EOF
    If rs!TABLE_NAME = Text3.Text Then
    MsgBox "存在此表名"
    Else
    Call db.Execute("select * into " & Text3.Text & " From [Sheet1$] In '" & sPath & "' 'excel 8.0;'")
    MsgBox "导出成功", vbOKOnly, "提示"
    db.Close
    Set db = Nothing
    Exit Do
    End If
    rs.MoveNext
    Loop
    改了,可是为什么不执行Else后面的语句呢?