标题:[求助]由Access数据库导入VB数组
只看楼主
桃源书生
Rank: 1
等 级:新手上路
帖 子:99
专家分:3
注 册:2006-7-3
结帖率:33.33%
 问题点数:0 回复次数:12 
[求助]由Access数据库导入VB数组
偶是菜菜鸟,有一个问题想请教各位大侠:
现在有一个用Access做的数据库文件db1.mdb,里面有一个表为“数据表”。现在想把这个“数据表”里的数据导入VB中的二维数组变量A(2,10)中。请问如何实现?谢谢!
搜索更多相关主题的帖子: 数据库 Access 
2006-07-04 15:44
guiyangl015
Rank: 1
等 级:新手上路
帖 子:125
专家分:0
注 册:2006-5-21
得分:0 

这个问题前面也有人问的,我自己也做过,具体步骤如下:
1 先打开数据库,应该会吧!
Dim i%,j%,A!(),m%,n%
Dim mlink As String, mpath As String, macc As String
Dim Cnn As New ADODB.Connection
Dim Rst As New ADODB.Recordset
mlink = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= db1.mdb"
macc = "select * from 数据表"
Cnn.Open mlink
Set Rst = New ADODB.Recordset
Rst.Open macc, Cnn, adOpenKeyset, adLockOptimistic
2 获得表的字段数和记录数
Rst.MoveLast
i = Rst.RecordCount - 1
j = Rst.Fields.Count - 1
3 利用循环赋值
ReDim A(i, j)
For m = 0 To i
If m > 0 Then
Rst.MoveNext
If Rst.EOF Then
Rst.MoveLast
End If
Else
Rst.MoveFirst
End If
For n = 0 To j
A(m, n) = Rst.Fields(n)
Print A(m, n);
Next n
Print
Next m
Cnn.Close
基本上不管你的表有多少字段和记录都可以实现,包括你的A(2,10)


站的高,才能看的远!!
2006-07-08 10:26
桃源书生
Rank: 1
等 级:新手上路
帖 子:99
专家分:3
注 册:2006-7-3
得分:0 
谢谢guiyang1015的指点!有几个问题想再请教一下:
1. 程序中"Provider=Microsoft.Jet.OLEDB.4.0"中的4.0这个版本在哪里可以查到?
2. 程序中"Rst.Open macc,Cnn, adOpenKeyset,adLockOptimistic"中的"adOpenKeyset"和"adLockOptimistic"是什么意思?Rst.Open还有其它属性吗?
3. “Rst.RecordCount”和“Rst.Fields.Count”分别指什么?
4. “Rst.EOF”和“Rst.Fields”分别指什么?
请各位大侠指教!
2006-07-12 16:41
guiyangl015
Rank: 1
等 级:新手上路
帖 子:125
专家分:0
注 册:2006-5-21
得分:0 

不用客气,大家都是新手!
我接触数据库也不是很长时间!用过的一些属性我知道,好多没用过的我 也不知道.
现在我也在求ADO相关的知识!
你可以问xinfresh,purana等几位版主,我的好多都是chenzhao解决的!
1 "Provider=Microsoft.Jet.OLEDB.4.0"是数据库引擎,你不用管它,一般用代码打开数据库的时候都需要,如果用ADO控件的时候只需要设置就行了!它本身就在VB里面.
2 Open方法打开记录集的时候一般有四个参数,(macc,Cnn这两个你知道的),adOpenKeyset具体意思我也不清楚,adLockOptimistic是开放式.Open方法的其他参数,我也在求!
3 Rst.RecordCount指记录集的记录数,Rst.Fields.Count指记录集的字段数.
4 Rst.EOF指记录集指针移动时,判断是否到了最后一条记录,Rst.Fields(n)指某一条记录里面的某一个字段的值.
给你一个建议,你找本数据库方面的书籍看看,自己从最简单的开始操作!不懂的再来问,效果会更好!!


站的高,才能看的远!!
2006-07-13 10:14
桃源书生
Rank: 1
等 级:新手上路
帖 子:99
专家分:3
注 册:2006-7-3
得分:0 
谢谢guiyang1015的的回答和建议!我会找一些相关书籍来看(正在找),有问题再请教。
2006-07-13 11:32
VB爱上我
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:478
专家分:52
注 册:2005-10-14
得分:0 

Dim a
Private Sub Command1_Click()
g.Rows = UBound(a, 2) + 2
g.Cols = UBound(a, 1) + 2
For i = 1 To UBound(a, 2) + 1
For j = 1 To UBound(a, 1) + 1
g.TextMatrix(i, j) = IIf(IsNull(a(j - 1, i - 1)), "null", a(j - 1, i - 1))
Next
Next
End Sub

Private Sub Form_Load()
Dim conn As New ADODB.Connection
conn.ConnectionString = "provider=sqloledb;data server=jhd001;database=jxc10s;uid=sa;pwd="
conn.Open
Dim rs As New ADODB.Recordset
rs.Open "fila02a", conn, 1, 1
a = rs.GetRows()
End Sub


IT618资讯网 提供服务端开发,前端开发,网页特效,热门开源系统研究,软件下载,站长建站,淘宝开店等学习资料.
2006-07-13 13:25
桃源书生
Rank: 1
等 级:新手上路
帖 子:99
专家分:3
注 册:2006-7-3
得分:0 

谢谢版主的指点!现在还有一个有关数据库的路径问题想请教一下:
在程序中有这样一行代码
mlink1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb"
db1.mdb这个文件放在VB程序安装目录C:\Program Files\Microsoft Studio\VB98下,而我编的VB程序放在E:\VB目录下。请问:在对程序进行打包时,还需要将db1.mdb这个文件复制到E:\VB目录下吗?
谢谢!

2006-07-14 10:08
VB爱上我
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:478
专家分:52
注 册:2005-10-14
得分:0 
mlink1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & app.path & "db1.mdb"

IT618资讯网 提供服务端开发,前端开发,网页特效,热门开源系统研究,软件下载,站长建站,淘宝开店等学习资料.
2006-07-14 17:58
桃源书生
Rank: 1
等 级:新手上路
帖 子:99
专家分:3
注 册:2006-7-3
得分:0 

版主的意思是将该行语句改为"Data Source="& app.path & "db1.mdb",然后把db1.mdb这个文件放在E:\VB下面,对E:\VB文件夹进行打包就可以了?

2006-07-15 17:30
quickbird
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-1-1
得分:0 

指的是当前文件夹


算浮生事,瞬息光阴,锱铢名宦。 正欢笑,试恁暂时分散。 却是恨雨愁云,地遥天远。
2006-07-15 20:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-76498-1-1.html




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

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