Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 选择要数组的表数据-仅获取一行_Ms Access_Vba - Fatal编程技术网

Ms access 选择要数组的表数据-仅获取一行

Ms access 选择要数组的表数据-仅获取一行,ms-access,vba,Ms Access,Vba,我正试图从表EmailList中提取数据,并将其放入数组中,数组将被传递到outlook电子邮件的“收件人:”字段(电子邮件脚本已生成)。我计划使用Join()函数将数组组合成一个字符串:Join(varEmailList,“;”) 我的代码: Private Sub Propose_Click() Dim MyDB As DAO.Database Dim rstEmails As DAO.Recordset Dim varEmails() As Variant Dim intRowNu

我正试图从表
EmailList
中提取数据,并将其放入数组中,数组将被传递到outlook电子邮件的“收件人:”字段(电子邮件脚本已生成)。我计划使用
Join()
函数将数组组合成一个字符串:
Join(varEmailList,“;”)

我的代码:

Private Sub Propose_Click()

Dim MyDB As DAO.Database
 Dim rstEmails As DAO.Recordset
 Dim varEmails() As Variant
 Dim intRowNum As Integer
 Dim intColNum As Integer

 Set MyDB = CurrentDb
 Set rstEmails = MyDB.OpenRecordset("select email from EmailList", dbOpenSnapshot)

 'Let's retrieve ALL Rows in the rstEmails Recordset
 varEmails = rstEmails.GetRows()

 MsgBox ("Number of Fields Retrieved: " & UBound(varEmails, 1) + 1)

 rstEmails.Close
 Set rstEmails = Nothing

End Sub
我遇到的问题是代码只能找到一条记录,一次至少应该有10条记录。

根据:

使用GetRows方法从记录集中复制记录。GetRows返回一个二维数组。第一个下标标识字段,第二个下标标识行号

实际上,您需要第二维度中的项目数:

UBound(varEmails, 2)

DAO.Recordset.GetRows
方法只返回一行,除非您明确告诉它返回更多

要求
GetRows
检索所有行:

“让我们检索rstEmails记录集中的所有行
'varEmails=rstEmails.GetRows()
带回信
.最后一个
.先走一步
varEmails=.GetRows(.RecordCount)
.结束
以
还有一个问题

MsgBox(“检索的字段数:”&UBound(varEmails,1)+1)
该数组的第一个维度是字段——在本例中只有一个字段。第二个维度具有以下字段的值:

MsgBox(“检索的字段数:”&UBound(varEmails,2)+1)

如果您向
GetRows
等提供说明

rs.GetRows(100)

但是您的记录集中有一个错误,例如被零除(
#NUM
),并且该错误位于第50行,只返回49行,并且
GetRows
将自动提前停止

请尝试从
varEmails
调用中删除
rstEmails.RecordCount
。@Gareth同样的问题-尽管知道这不是必需的还是很好的。