运行Access查询的Excel VBA可能会返回多条记录

时间:2017-12-07 19:55:50

标签: excel vba excel-vba ms-access

我在宏(使用Excel VBA)中运行以下查询到Access数据库。只返回1条记录时效果很好。我已经知道可以返回多条记录。

我坚持尝试识别何时有多条记录,因此我可以将每条附加记录添加到工作表中。一旦我知道有多条记录,我就会写第一条记录然后将行号(x)递增1来写第二条,第三条等。

我之前没有遇到这种情况所以我不确定(1)如何确定是否有多个记录和(2)如何写第二条记录。第二个记录中的第一个字段是Recordset.Fields(11)吗?

感谢您的帮助..........

Dim Recordset As ADODB.Recordset
Set Recordset = New ADODB.Recordset

vDataBase = "Y:\Groups\Corporate Accounting\AutoMonarch\ Translate\Titles.mdb"
ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= '" & vDataBase & "';Persist Security Info=False"

vSql = ""
vSql = "Select bo_id, buyers_order_date, mileage, contact_name, contact_phone, cust_legal_name, address, city, state, zip, country, location_phone from buyerinfo where unit = '" & vArrUnit(q) & "'"

Call Recordset.Open(vSql, ConnectionString, adOpenForwardOnly, adLockReadOnly, CommandTypeEnum.adCmdText)

If Recordset.BOF And Recordset.EOF Then
'      do something to indicate no records returned
Else

   Cells(x, 4) = Recordset.Fields(1).Value
   Cells(x, 5) = Recordset.Fields(2).Value
   ....
   Cells(x, 12) = Recordset.Fields(10).Value

End If

1 个答案:

答案 0 :(得分:0)

抱歉,这听起来像是一个奇怪的设置。你可以运行'查找重复查询向导'吗?也许你可以在Excel中做一个Countif,如果这是你的问题。

https://www.extendoffice.com/documents/excel/1499-count-duplicate-values-in-column.html