注册 登录
编程论坛 VB6论坛

不用ADODC控件如何与数据库连接,并将数据显示在datagrid控件上,还能导出成excel文档,大致思路是怎么样的?

yujianding 发布于 2016-10-12 09:40, 4735 次点击
如题所言,我做一个窗口,不想用ADODC控件连接,因为数据库的位置不是稳定的,所以想用相对路径,但是在datagrid显示数据上,稍微有点麻烦,还有导出excel这个地方有点不大明白,有高手能指点下迷津吗?
6 回复
#2
xzlxzlxzl2016-10-12 10:01
点击“工程-引用”,在引用窗口里勾选“Microsoft Activex Data Objects Recordset 2.8 Library”,如果还要使用Excel,还要勾选“Microsof Excel 14.0 Object Library”,如果找不到就找相近的亦可。
#3
pengzhanggui2016-10-12 10:11
'连接数据库
Set adoCn = New ADODB.Connection
adoCn.Errors.Clear
sConnect = "Provider=MSDAORA.1;server=AAA;Password=BBB;User ID=CCC;Data Source=DDD;Persist Security Info=True"
adoCn.ConnectionString = sConnect
adoCn.Open , , , adConnectUnspecified

'获取数据
strSQL="SELECT...."
Dim adoRs As ADODB.Recordset
Set adoRs = adoCn.Execute(strSQL)
#4
xiangyue05102016-10-12 11:34
ADODC控件说白了就是ADODC对象的实体化的东西。
只要添加了ado引用(参见2楼)之后。你完全可以自己根据需要来声明相应的对象。ADODB.Connection、ADODB.recordset等等。其实差不多的,各有优缺点吧
ADODC控件的方法,省去了一些代码,但是一个控件在使用中始终是唯一的。也就是你有几个连接或者检索,就需要几个控件。
直接声明对象的方式,代码会多一点,但是灵活,随时根据情况声明调用,然后释放掉。 个人偏向于这个,毕竟代码类似,略微修改就可以了

至于导出Excel,笨方式建立相应的excel application,是逐行逐字段读取在填如,
另外一个就是ADODB.Connection连接,不过是Excel的。 相当于从复制表。如果Excel中的数据是跟数据库表的框架一样存放,这个方法简单。如果是这里一个数据,那里又放一个数据的话,只能用前面的那个方法。。

[此贴子已经被作者于2016-10-12 11:38编辑过]

#5
初始元灵2016-10-12 14:03
DAO或者ADO都可以,对应显示数据的表格控件不同。
#6
初始元灵2016-10-12 14:09
DAO或者ADO都可以,对应显示数据的表格控件不同。
我一般用ADO代码也很简单
连接Access数据库就是:Dim cn as ADODB.connection  'cn可以改名字,自己随便写,不冲突就行。
                      Dim rs as ADODB.Recordset   'rs同cn
                      Set cn = New Adodb.connection
                      Set rs = New Adodb.Recordset
                      cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\???.mdb;Persist Security Info=False"
                      rs.Open "select * From 记录集的名字 order by 一般是主键", cnNet, adOpenKeyset, adLockOptimistic  '属性根据自己需要配置。
这就连上了。
#7
ZHRXJR2016-10-13 19:02
如图:
只有本站会员才能查看附件,请 登录
,将这二个引用勾选,就添加了ADO对象,在程序中就可以使用ADO对象了。
在程序的通用部分定义二个ADO对象:“Dim cn As New ADODB.Connection, RS As New ADODB.Recordset”    cn是数据库连接对象,RS是记录集对象,通俗一点讲,cn是连接数据库的,RS是连接数据表的,可以操作数据表中的记录。例如:
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aaa.mdb;Persist Security Info=False"   'aaa.mdb 是数据库名称,修改为你的数据库名称
RS.Open "Select * From 会员登录表 Where YHM='" & Text1.Text & "'", cn, 2, 3   '会员登录表 是连接的数据表,修改为你的数据表;YHM 是数据表的登录用户名字段名称,修改为你的数据表中的字段名称即可

在连接了数据库,并且成功连接了数据表取得了数据表的记录,你就可以随心所欲的操作数据表了。
ADO对象对数据库的操作非常灵活,比ADO控件灵活的多,但是相对来说,代码比较多一点,优点是可以按照你的意图完成操作。
另外,多说一句,ADO有一个对象 Tstr As New ADODB.Stream,这个Tstr(名称自己定义)对象可以操作二进制数据,例如将图片、Doc文件以二进制数据存储在数据表中,在需要时可以读取图片、Doc文件。
对于操作Excel,ADO也可以操作,如同操作数据库一样,可以不需要引用Excel,但前提是Excel表格是比较正规的表格,对于Excel的导入、导出也没有问题。
1