采用QTP11.0对access数据库的连接

Option explicit
Dim Cnn ,strDb ,Rst ,strCnn ,ilen '//定义变量
Set Cnn=CreateObject("ADODB.Connection") '//生成数据库连接对象
strCnn="Provider=Microsoft.ACE.OLEDB.12.0;Ole DB Services=-4;Data Source=D:\DB\C6DB.accdb" ' //将获得的连接字符串赋值到strCnn
Cnn.Open strCnn  '//打开数据库
Set Rst=createObject("ADODB.Recordset") '//生成记录集对象,可以理解为一个列表
Rst.Open "select * from EMPART" ,Cnn  'EMPART数据库表
Do while Not Rst.EOF     'eof表示这个记录集的结束标识
For ilen=0 to 1
Select Case ilen
Case 0
strDb=strDb&Rst.Fields.Item(ilen)&" "  '表示取取第一列
Case 1
strDb=strDb&"+ "&Rst.Fields.item(ilen)   '表示取取第二列
End Select

Next

''也可以将for循环的内容换成如下:

''strDb=strDb&Rst.Fields("USERNAME")&"+"&Rst.Fields("NICKNAME")&"+"&Rst.Fields("USERPASS")&"+"&Rst.Fields("ROLE")&vbNewLine

strDb=strDb&chr(13)    'chr(13),函数将返回回车

Rst.MoveNext

Loop
Rst.Close
cnn.Close
msgbox strDb

执行效果图如下:


数据库中原来数据如下:


另外补充三个问题点,在编写过程中遇到的三个问题:

1、Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0的区别

在通过ADO对Excel对象进行连接时(此时Excel则认为是一个数据源),需要配置对Excel数据源对应的连接串,这个连接串中包括了Provider信息(其实类似对数据库进行连接操作时,都需要指定连接字符串),以下是一行连接串源代码:

strConnString ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" &strExcelFilePath & ";Extended Properties=Excel 12.0"

这里的Provider使用了Microsoft.ACE.OLEDB.12.0,其实除了Microsoft.ACE.OLEDB.12.0,还有Microsoft.Jet.OLEDB.4.0,它们俩者之间有什么联系和区别呢:

(1)共同点:都是做为连接Excel对象的接口引擎

(2)不同点:

对于不同的Excel版本,有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎)。Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。ACE 引擎是随 Office 2007 一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问 Office 97-2003。

另外:Microsoft.ACE.OLEDB.12.0可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。

所以,在使用不同版本的office时,要注意使用合适的引擎。

2、数据库表名称一定要选择数据库里面表的名称,而不是数据库的名称。

3、如果要访问的数据库不在本地,可以通过:将数据库所在的电脑通过设置共享,再映射到本地电脑,就可以正常访问。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值