怎样用VBA取得Access数据库中的查询结果?

来源:百度知道 编辑:UC知道 时间:2024/06/17 11:51:54
Dim MyDb As Database '定义数据库对象
Dim MyDs As Recordset '定义数据集对象
Dim CNN As Connection
Set MyDb = CurrentDb '数据库为当前数据库
Dim i As Integer
Set MyDs = MyDb.OpenRecordset("Select Flux_Amount FROM Mytable", , dbReadOnly)

Debug.Print MyDs.RecordCount

For i = 0 To MyDs.RecordCount - 1
MsgBox CStr(MyDs.Fields(0))
Next i

问题是Mytable中有64条记录,但是查询结果只显示了1条。

请问,怎么才能将这64条记录都取出,并通过VBA传递给一个数组A呢?

谢谢!
谢谢yuan710825,但是我的问题的重点是,将全部记录取出。表单中明明有64条记录,但是总是只能显示一条。Debug.Print MyDs.RecordCount显示的结果也是1.
请问,怎么解决呢?

用DAO,可以在VB添加DAO组件。然后,定义参数。

'Database Connection
Dim cn As Workspace
Dim db As Database
Dim Rs As Recordset
Dim YOURPWD$, strSQL$, sContent$

'设置数据库
Set cn = DBEngine.Workspaces(0)
Set db = cn.OpenDatabase(sDbPath, False, False, ";pwd=" & YOURPWD)

'打开数据库
strSQL = "Select * From YourTable"
Set Rs = db.OpenRecordset(strSQL, , dbReadOnly)

'取出一个不为NULL的字符串字段值
sContent = trim$(Rs!Item1)

--------------------------------------------------------------
'使用前提在VB中加入VB组件
Dim xlsApp As Object, xlsBook As Object, xlsSheet As Object
Dim Row&, Col&

On Error GoTo ExcelInport_Err
'创建应用Excel程序
Set xlsApp = CreateObject("Excel.Application")
'Excel WorkBook 的添加
Set xlsBook = xlsApp.Workbooks.Add
’取得活动的Excel Sheet
Set xlsSheet = xlsBook.ActiveSheet

'Exce