这个问题的一般解决方法是试着打开这个表,如果程序出错,通过errnumber对象,判断出出错的原因是表不存在,然后相应的进行处理,如果不出错,那么就可以直接用了!代码可以这样:
private sub a()
on error goto l
打开表;
进行操作;
exit sub
l:if err.number=表不存在的错误号(自己可以查,我记不清了!) then 
错误时的处理程序
end if 
end这样就可以了!当然还有其他方法了!不过这个比较简单!

解决方案 »

  1.   

    adodc的connectstring中不是有“测试连接”吗?
      

  2.   

    dim a as tabledef
    for each a in currentdb.tabledefs
    if a.name=XXX then
    msgbox "Find"
    exit sub
    end if
    next
      

  3.   

    dim a as tabledef
    for each a in currentdb.tabledefs
    if a.name=XXX then
    msgbox "Find"
    end if
    next
    好像是dao的,试试看吧。:)
      

  4.   

    给你写个函数,试一试
    Private Function FindTable() As Boolean
    Dim cn As New adoDB.Connection
    Dim RS As New adoDB.RecordsetFindTable = False
            If cn.State = 0 Then cn.Open ConnectStr 'ConnectStr 为连接串
            If RS.State = 1 Then RS.Close
            Set RS = cn.OpenSchema(adSchemaTables)
            Do While Not RS.EOF
                Select Case RS(2).Value
                        Case "MSysRelationships", "MSysQueries", "MSysObjects", "MSysModules2", "MSysModules", "MSysACEs", "MSysAccessObjects"
                        Case Else
                            If FindTableName = RS(2).Value Then
                               FindTable = True
                               Exit Function
                            End If
                End Select
             RS.MoveNext
             Loop
    End Function
      

  5.   

    有一个专门判断表是否存在的语句,一时不记得啦,在SQL server 2000中可以找到,
      

  6.   

    用openschema方法
    具体请参考ado帮助
    OpenSchema 方法范例
    该范例使用 OpenSchema 方法显示 Pubs 数据库内每个表的名称和类型。Public Sub OpenSchemaX()   Dim cnn1 As ADODB.Connection
       Dim rstSchema As ADODB.Recordset
       Dim strCnn As String
          
       Set cnn1 = New ADODB.Connection
          strCnn = "Provider=sqloledb;" & _
          "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
       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
       
    End Sub至于不存在,那么看你程序的目的了,或者创建一个表.或者程序报错.