怎样判断一个数据库中是否存在某个表?

cloud_leonhart 2002-09-27 08:27:47
怎样判断一个数据库中是否存在某个表?我用的是ACCESS,那么怎么判断里面是否有某个表的存在,谢谢,请副方法或代码
...全文
44 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shawls 2002-09-30
[名称] 判断数据库中是否有特定的表

[语言种类] Visual Basic

[类别一] 数据库

[类别二] SQL资料

[类别三] 空

[数据来源] 李梓钰

[保存时间] 2002-08-21

[关键字一] 特定表格

[关键字二] 判断存在

[关键字三] 数据库

[内容简介] 空

[源代码内容]

'-------------------------------------------------
' 函数名:ExistTable
' 函数说明:判断数据库中是否有特定的表
' 参数:TableName,Cn
' 参数说明:
' TableName:要判断的表名
' Cn:连接名
' 返回值:有
' 返回值说明:1.存在;0,不存在
' 作者:李梓钰.
' 注意事项:无.
' 创建日期:2002/01/05
' 修改日期:2002/01/05
'-------------------------------------------------
Public Function ExistTable(TableName, Cn As ADODB.Connection) As String
Dim i As Integer
Dim Rs_ExitTable As New ADODB.Recordset
Dim Cn_ExitTable As New ADODB.Connection

On Error GoTo FindErr:

Set Cn_ExitTable = Cn
Cn_ExitTable.CursorLocation = adUseClient
Set Rs_ExitTable = Cn_ExitTable.OpenSchema(adSchemaTables)

For i = 0 To Rs_ExitTable.RecordCount - 1
If Rs_ExitTable!table_name = TableName Then
ExistTable = 1
Exit For
Else
ExistTable = 0
End If
Rs_ExitTable.MoveNext
If Rs_ExitTable.EOF Then Rs_ExitTable.MoveLast
Next
Exit Function
FindErr:
MsgBox Err.Description
End Function


以上代码保存于: SourceCode Explorer(源代码数据库)
复制时间: 2002-09-30 20:42:13
软件版本: 1.0.742
软件作者: Shawls
个人主页: Http://Shawls.Yeah.Net
E-Mail: ShawFile@163.Net
QQ: 9181729
回复
czwwh 2002-09-30
'判断数据库中是否有特定的表
'TableName为表名,Cn是数据库的连接
'返回1,这个表存在,0为不存在
Public Function ExistTable(TableName, Cn As ADODB.Connection) As String
Dim i As Integer
Dim Rs_ExitTable As New ADODB.Recordset
Dim Cn_ExitTable As New ADODB.Connection

On Error GoTo FindErr:

Set Cn_ExitTable = Cn
Cn_ExitTable.CursorLocation = adUseClient
Set Rs_ExitTable = Cn_ExitTable.OpenSchema(adSchemaTables)

For i = 0 To Rs_ExitTable.RecordCount - 1
If Rs_ExitTable!table_name = TableName Then
ExistTable = 1
Exit For
Else
ExistTable = 0
End If
Rs_ExitTable.MoveNext
If Rs_ExitTable.EOF Then Rs_ExitTable.MoveLast
Next
Exit Function
FindErr:
MsgBox Err.Description
End Function
回复
笨狗先飞 2002-09-30
好象DATA控件可以例举出每个表的名称的
回复
xinsb 2002-09-30
感谢您使用微软产品。

您可以需要加入引用Microsoft ADO Ext 2.7 for DDL and Security,然后就可以利用ADOX的Catalog的Tables属性获得所有表的信息,查找某个表是否存在。如下例:

Dim cn As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim theTableName as string '要查找的表名

Private Sub Command1_Click()
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Program Files\Microsoft Visual Studio\VB98\Nwind.mdb;"

Set cat = New ADOX.Catalog
Set cat.ActiveConnection = cn

Dim t As Table
For Each t In cat.Tables

Debug.Print t.Name
If t.Name = theTableName Then
MsgBox "the table exists!"
End If

Next

cn.Close
Set cn = Nothing

End Sub

请参考下面修改表名的例子:
Q291017 HOWTO: rename a database table in Access from a VB application http://support.microsoft.com/support/kb/articles/q291/0/17.asp

- 微软全球技术中心 VB技术支持

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
回复
westwin 2002-09-27
建议楼主搜索,这儿的论坛以前出现过n个同样的问题

大家学会搜索最好了
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2002-09-27 08:27
社区公告
暂无公告