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

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 ,如需转载请自行联系原作者



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

相关文章
阿里云web应用防火墙是什么?主要防护内容有哪些?
本文主要介绍了阿里云web应用防火墙是什么?是否安全及主要防护内容有哪些
6 0
JavaWeb开发Servlet学习
JavaWeb开发Servlet学习
5 0
JavaWeb开发Session管理
JavaWeb开发Session管理
4 0
Linux学习笔记 15(用户和用户安全管理)
(1) 新建普通用户为test(2) 修改test的密码为test(3) 切换到tty2,并以text登录(4) 切换到root权限(5) 新建组tests(6) 删除组tests(7) 新建用户student,并修改密码为student123(8) 修改student的主目录为/root(9) 请问student这个用户能登录么?为什么?答:可以,因为已经设置了用户名和密码(10) 修改student用户的主目录为/home/tudent(11) 切换到tty3,并以student登录(12) 查询目前登录到系统的用户((1) 新建普通用户为test(2) 修改test的密码为test(3)
5 0
神奇的选择器 :focus-within
神奇的选择器 :focus-within
5 0
Windows下Redis x64的安装与使用教程
Windows下Redis x64的安装与使用教程
3 0
中科化学:以共享概念解决仪器预约难题,以数据计算赋能产业生态链
共享经济鼻祖罗宾·蔡斯在其《共享经济》一书中提到,被忽视的过剩产能,将产生无处不在的机会。
3 0
国内仅200个专业人才,笛倍通致力做数据库调优市场“拓荒者”2021阿里巴巴诸神之战山东站系列报道
数字化浪潮加速了各行各业的融合发展,有力驱动了科技创新和场景创新。正在进行中的“阿里巴巴诸神之战山东站暨智汇谷创新创业大赛”涌现了诸多具有发展潜力的优秀创业团队和科技创新项目,创头条对其中优秀的参赛企业进行系列报道,本文是该系列报道之一。
3 0
IDEA使用C3P0连接Mysql数据库
IDEA使用C3P0连接Mysql数据库
4 0
SpringCache通用缓存学习
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化我们在业务中操作缓存的代码。 Spring Cache只是提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。CacheManager是Spring提供的各种缓存技术抽象接口。
3 0
+关注
10145
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载