VB 6.0中判断是否Access 2010中存在指定表格
2014-07-16 12:44
183 查看
问题
最近在工作中遇到使用VB6判断是否ACCESS 2010数据库中是否存在指定表格的问题。对于早期ACCESS数据库(应当主要是ACCESS 2003及以前版本),使用DAO引擎操作是没有问题的。主要相关代码如下:For Each mytable In mydatabase.TableDefs
print mytable.name
Next
但是,DAO技术已经不适用于ACCESS 2010了。为此,我使用BAIDU搜索,初步得到的一个方法如下:
cn2.Open "Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS
Access Database;Initial Catalog=" + App.Path + "\data\object.accdb"
Debug.Print cn2.ConnectionString
'1, 先判断表格是否存在
cn2.Execute "select * from Single"
If Err.Number <> 0 Then
'
MsgBox "目标数据库中表格Single不存在!"
GoTo end1
End If
注意,我使用VB6访问ACCESS2010时使用的不是Microsoft.Jet.OLEDB.4.0技术,我发现使用它访问高版本的
ACCESS(INCLUDING
2007)是不行的,这个你相信就是了,是没有问题的。我们看到,上面代码使用了陷阱技术来分析数据库中是否存在指定表格。但可怜的是,上述技术对于
ACCESS 2010是没有用的(我亲自试验的)。
解答
正确的方法(之一)是,使用ADO对象的OpenSchema方法。相关代码如下:cn2.Open "Provider=MSDASQL.1;Persist Security
Info=False;Data Source=MS Access Database;Initial Catalog=" + App.Path +
"\data\object.accdb"
Dim bYes As Boolean
bYes = False
Set rs2 = cn2.OpenSchema(adSchemaTables)
Do Until rs2.EOF
Debug.Print rs2!TABLE_NAME
If rs2!TABLE_NAME = "Single" Then
bYes = True
GoTo cont1
End If
rs2.MoveNext
Loop
cont1:
rs2.Close
If Not bYes Then
GoTo end1
End If
本文出自 “青峰” 博客,请务必保留此出处http://zhuxianzhong.blog.51cto.com/157061/1438947
相关文章推荐
- VB 6.0中判断是否Access 2010中存在指定表格
- 用_access判断文件或文件夹是否存在及其读写权限
- 浅谈如何分类判断PB当中指定对象是否存在?(原创)
- T-SQL判断某个表在ACCESS中是否存在及查看ACCESS中的系统表
- VB 判断文件是否存在
- 在SQL中如何判断指定的列名是否存在
- VB之Win32 API编程--判断本地或远程文件是否存在的简易方法
- VB.Net判断目录或文件是否存在的实例
- 如何在JS中判断页面上是否存在指定控件
- C语言函数access(szFilePath, 0)用于判断文件是否存在
- VB中如何判断文件、文件夹是否存在
- 用VB判断注册表某键下是否存在某值。
- VB Excel 增加一个新sheet 的时候,怎么判断是否存在
- VB判断注册表键值是否存在暨——判断.net 3.5是否安装
- 判断指定进程号的进程是否存在
- VB中如何判断文件、文件夹是否存在
- 判断指定进程号的进程是否存在
- 遍历字符串判断指定字符串是否存在
- 在SQL中如何判断指定的列名是否存在
- 用VB判断文件、隐藏文件、文件夹是否存在