这个问题的一般解决方法是试着打开这个表,如果程序出错,通过errnumber对象,判断出出错的原因是表不存在,然后相应的进行处理,如果不出错,那么就可以直接用了!代码可以这样:
private sub a()
on error goto l
打开表;
进行操作;
exit sub
l:if err.number=表不存在的错误号(自己可以查,我记不清了!) then
错误时的处理程序
end if
end这样就可以了!当然还有其他方法了!不过这个比较简单!
private sub a()
on error goto l
打开表;
进行操作;
exit sub
l:if err.number=表不存在的错误号(自己可以查,我记不清了!) then
错误时的处理程序
end if
end这样就可以了!当然还有其他方法了!不过这个比较简单!
for each a in currentdb.tabledefs
if a.name=XXX then
msgbox "Find"
exit sub
end if
next
for each a in currentdb.tabledefs
if a.name=XXX then
msgbox "Find"
end if
next
好像是dao的,试试看吧。:)
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
具体请参考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至于不存在,那么看你程序的目的了,或者创建一个表.或者程序报错.