高分求教大虾如何检查在ACCESS数据库中是否存在某个表?

szyhp 2003-04-11 11:27:43
各位大虾:
在VB应用程序中我连接到ACCESS数据库,但不知如何检测是否存在某一个数据表。请详细写明,谢谢!
...全文
41 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
DimVar 2003-04-11
参考,稍改下就好了
Function GetTables(cnn As ADODB.Connection) As Boolean
'Purpose : Get table names from the Connection given
'Input : cnn, ther ADODB.Connection
'Output : TRUE/FALSE
'

On Error GoTo GetTables_ErrorHandler
Screen.MousePointer = 11

Dim rstSchema As ADODB.Recordset
cboTablesName.Clear

Set rstSchema = cnn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "Table"))


Do Until rstSchema.EOF
If StrComp(Left(rstSchema!TABLE_NAME, 4), "MSys", vbTextCompare) <> 0 Then
cboTablesName.AddItem rstSchema!TABLE_NAME
End If
rstSchema.MoveNext
Loop

rstSchema.Close
Set rstSchema = Nothing

Screen.MousePointer = 0

ErrorHandler:
Exit Function
GetTables_ErrorHandler:
Screen.MousePointer = 0
ShowErrMsg ("GetTables")
Resume ErrorHandler

End Function
回复
qbilbo 2003-04-11
如果用DAO就很方便了。

dim db as database,i as integer

set db=dbengien.opendatabase("yourdatabase")
for i =0 to db.tabeldefs.count-1
debug.print db.tabeldefs(i).name
next

db.close

这样就可以获取数据库中所有的表名了。
回复
showflow 2003-04-11
我没有用过ACCESS,不知道ACCESS有没有像SQL一样在SYSOBJECTS中保存数据对象
回复
ouyi0901 2003-04-11
Sorry:
是Err.Number 不是Err.ID
回复
ouyi0901 2003-04-11
我有个很损的办法:
SQL="Select * from ttttttttttttttttttt"
“ttttttttttttttttttt“是一个不存在的表,然后执行这个SQL会返回一个特定的
Err.ID
然后比较Err.ID就知道你不确定的表是不是存在了,呵呵
回复
fleshboy 2003-04-11
对,用OpenSchema!
回复
lihonggen0 2003-04-11
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=8159
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7522

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2003-04-11 11:27
社区公告
暂无公告