| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2385 人关注过本帖
标题:如何用VB连接ACCESS2003
只看楼主 加入收藏
luyaqi2011
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-10-16
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:11 
如何用VB连接ACCESS2003
用Adodc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=地址\文件名.mdb;Persist Security Info=False",在DataGrid中显示。
如果电脑装的ACCESS是2007版本的,可以正常使用,如何ACCESS是2003版本的,显示的为空白。
请问这个问题如何解决。
搜索更多相关主题的帖子: False 如何 
2013-02-17 14:50
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
把 mdb (数据库) 的版本 降下来。

用 ACCESS 2007 打开数据库后,转换成  ACCESS 2003 的格式。

关键是 装了 ACCESS 2003 的机子的 ADODC 驱动 无法支持 2007 的格式。

如 VB6原版的 DATA 控件,只支持 ACCESS 97 的格式,也只能降下数据库版本用。
SP6 的DATA 支持 2003 的格式。

授人于鱼,不如授人于渔
早已停用QQ了
2013-02-17 16:43
luyaqi2011
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-10-16
收藏
得分:0 
我已经将ACCESS的那个数据库降成2003版本了,但是还是一样的情况,如果A电脑是2007,B电脑是2003,在A电脑上一切正常,换到B电脑上就是空白了;
如果用MSFlexGrid连接数据库,就可以完全显示。
2013-02-18 11:01
曾大虾
Rank: 2
等 级:论坛游民
威 望:2
帖 子:17
专家分:62
注 册:2007-8-17
收藏
得分:0 
应该与数据库版本没有关系,请发完整源码,以助于解决问题
2013-02-19 13:42
luyaqi2011
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-10-16
收藏
得分:0 
附件中“可以”那份是可以正常出现数据的,用的是MSFlexGrid,下面是用的DataGrid及Adodc,07版的可以正常使用,03版则数据是空白,是哪里出现的了问题?
Adodc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=地址\表格.mdb;Persist Security Info=False"
Adodc.RecordSource = "SELECT 夹具名称,夹具编号,工程师 FROM A"
Adodc.Refresh
而DataGrid.dataSource=Adodc
2013-02-20 08:38
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:0 
  Adodc1.CursorLocation = adUseClient
  Adodc1.Refresh
  Set DataGrid.DataSource = Adodc1
可以显示了,这不是版本问题,我以前一直用access2000也碰到过,当时是没设置键字段。
如用ado,则在打开记录集前使用rs.cursorlocation=aduseclient,如果访问的是sql数据库则改为rs.cursorlocation=aduseserver

[ 本帖最后由 lowxiong 于 2013-2-20 10:09 编辑 ]
2013-02-20 10:03
luyaqi2011
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-10-16
收藏
得分:0 
Adodc1.CursorLocation = adUseClient
结果还是一样,还是没有数据显示。
2013-02-20 14:03
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:0 
专门装了了office2003,运行正常,你重点检查下你装2003版的windows系统。
图片附件: 游客没有浏览图片的权限,请 登录注册
2013-02-20 20:02
luyaqi2011
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2012-10-16
收藏
得分:0 
系统是正常的,没有问题
2013-02-21 08:48
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:653
专家分:3402
注 册:2008-5-7
收藏
得分:20 
我觉得用排除法解决问题
1,在2007电脑上执行没问题,说明控件属性在2007上设置正常
2,在2003电脑上执行有问题,有两种情况会导致,你认为是access版本导致的。
3,我用2003版没问题,说明不是access版本问题。
这样一来只有两种情况导致问题发生:
1:你2003电脑系统问题:从你的谈论可知你是使用adodc、DataGrid控件访问数据库的,这两控件对应的文件为msadodc.ocx、msdatgrd.ocx,再用工具软件分析可知这两控件需要很多其他文件支持,如adodc需要msado15.dll、stdole2.tlb、odbc32.dll等,同样DataGrid也需要不下30个这类文件支持,大多数文件是windows系统文件,任何一个被其他软件升级或改变都会导致你的问题。
2:adodc控件属性设置有问题,很可能你的程序设计是在2007电脑上做的,adodc中数据库文件路径设置死了,比如你在2007上数据库路径为e:\aaa\bbb.mdb,你全盘拷贝到2003电脑上时,你数据库位置是d:\aaa\bbb.mdb,这样导致你adodc控件找不到数据库,所以空白。
结论:你说你系统没问题,2007上运行正常,不是2003版本问题,因此就是adodc属性设置固定,而2003的运行环境和2007不同造成的。
解决办法
1:让2003的程序运行路径和2007完全相同,即在同一盘符和同一目录层次(至少数据库的目录路径一样)
2:adodc中连接数据库字符串中的关于数据库目录路径用变量代替,代码如下(假设数据库和运行程序目录相同):
Adodc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & app.path & "\文件名.mdb;Persist Security Info=False"
如果再不能解决,你赶快请个和尚或道士,把你电脑前前后后看下,肯定是电脑里住了小鬼打搅的,拜拜神或许会解决!
2013-02-21 09:33
快速回复:如何用VB连接ACCESS2003
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.063677 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved