VB 6.0中判断是否Access 2010中存在指定表格-阿里云开发者社区

开发者社区> 技术小甜> 正文

VB 6.0中判断是否Access 2010中存在指定表格

简介:
+关注继续查看

问题

最近在工作中遇到使用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
















本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1438947 ,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10080 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10883 0
Mysql数据库表分区存储到指定磁盘路径
0. 前提: mysql5.6.6以上的版本以上的版本才支持单表指定目录,且目录权限是mysql:mysql。 在mysql中数据文件存放于在my.cnf中datadir指定的路径,使用的表引擎不同产生的文件格式、表文件个数也会有所差异。 mysql的表引擎有多种,表的扩展名也不一样,如innodb用“ .ibd”,archive用“.arc ”,csv用“.csv”等。
24 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13885 0
可显示Android设备选择列表,并进入指定Android设备Console的Shell脚本
      如果PC上连接多部Android设备(包括Android模拟器),在进入Console时还需要使用adb -s deviceid shell。
1041 0
百度云推送pkg_content参数 到达指定activity
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.
850 0
+关注
10146
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载