开发者社区> 技术小甜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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



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

相关文章
Data Access 之 MyBatis(三) - SQL Mapping XML(Part C)(上)
Data Access 之 MyBatis(三) - SQL Mapping XML(Part C)
10 0
MSSQL · 应用案例 · 基于内存优化表的列存储索引分析Web Access Log
问题引入 在日常的网站运维工作中,我们需要对网站客户端访问情况做统计、汇总、分析和报表展示,以数据来全面掌控网站运营和访问情况。当不可预知的意外情况发生时,我们可以快速发现问题以及采取相应的措施。比如:当网站受到黑客攻击时的流量陡增,又或者是网站某个资源发生意外抛异常等情况。 在提供Web服务的服务器上,比如IIS、Apache都存在访问日志记录,这篇是文章是以SQL Server 2016基于内
1758 0
用户不在sudoers 文件中。此事将被报告 or (usermod:“sudo”组不存在)
跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.
1303 0
HTML 5 Web 存储-localStorage
在客户端存储数据 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 cookie 完成的。
750 0
HTML 5 Web 存储——localStorage
              今天在调一个angularJs的代码的时候,看到了localStorge:                 因为这个对象在service里面没有定义,所以刚开始以为这是ag为我注入的一个对象,但是后来翻遍所有js代码,也没有发现这个对象定义在哪里。
1052 0
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法 运行shutdown.bat/shutdown.
4726 0
Error 1044 in MySQL: Access denied when using LOCK TABLES
解决这个问题,需要管理员给你的用户lock的权限才行,或者用下面的命令: mysqldump -u username -p database --single-transaction >dump.sql --single-transaction Creates a consistent snapshot by dumping all table
1310 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载