解决一个BUG-[怎么在ado中判断一个数据库中某个表是否已存在]
求助解决一个BUG-[如何在ado中判断一个数据库中某个表是否已存在]
------解决方案--------------------
不好意思,上面随手了,测试了一下,用这个吧:
Dim cnn As New Connection
Dim cat As New Catalog
Dim tbl As Table
dim bol as boolean
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\a.mdb"
Set cat.ActiveConnection = cnn
For Each tbl In cat.Tables
bol= (tbl.Name = "表one")
if bol then exit for
next
msgbox iif(bol,"存在","不存在")
- VB code
'自己可用分太少了所有只能给20分了.请谅解. '问题内容:如何在ado中判断一个数据库中某个表是否已存在? '原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=257974 '所属论坛:数据库(包含打印,安装,报表) 审核组:VB '提问者:leadergao 解决者: '感谢:acptvb '关键字:VB 数据库 数据库(包含打印,安装,报表) 微软 参见 http dim 出错 参阅 满意度 表 重名 '答案: '我要在一个数据库中新建一个表,(create table)但是如果数据库中已经存在这个表就会出错,如何解决这个问题 '--------------------------- 感谢您使用微软产品。 '在VB中,我们可以通过 Error Handler 来判断是否在当前数据库中有一个重名的表。 '如下例子介绍了如何通过ADOX在Access中处理一个特发事件: 'Use ADOX ======== 'Sample for Access Dim cnn As New Connection Dim cat As New Catalog Dim tbl As Table cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source= c:\Program Files\Microsoft Office\" & _ "Office\Samples\Northwind.mdb;" Set cat.ActiveConnection = cnn for each tbl in cat.tables if tbl.name="mytable" then 'BUG就在这句判断中,加上else的话就改句判断就失效了. msgbox "exist!" '如果不加else的话,像现在就是正常的. end if next
------解决方案--------------------
不好意思,上面随手了,测试了一下,用这个吧:
Dim cnn As New Connection
Dim cat As New Catalog
Dim tbl As Table
dim bol as boolean
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\a.mdb"
Set cat.ActiveConnection = cnn
For Each tbl In cat.Tables
bol= (tbl.Name = "表one")
if bol then exit for
next
msgbox iif(bol,"存在","不存在")