Sql 使用Access VBA,如何计算select查询中的输出记录数并将其存储为VBA变量?
我使用的是Access 2013,尤其是由于老板的指示,我无法使用VBA代码编辑器来最小化保存的查询和表,而且我也无法修改表结构 我有两个表:InvoiceDetails和AllItems,由ItemID连接Sql 使用Access VBA,如何计算select查询中的输出记录数并将其存储为VBA变量?,sql,vba,ms-access,Sql,Vba,Ms Access,我使用的是Access 2013,尤其是由于老板的指示,我无法使用VBA代码编辑器来最小化保存的查询和表,而且我也无法修改表结构 我有两个表:InvoiceDetails和AllItems,由ItemID连接 INVOICEDETAILS ALLITEMS ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ItemID←-----------→ItemID InvoiceNumber Invoiced (Yes/No) 有时发票明细中的项目可以单独记入
INVOICEDETAILS ALLITEMS
¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
ItemID←-----------→ItemID
InvoiceNumber Invoiced (Yes/No)
有时发票明细中的项目
可以单独记入贷方,在这种情况下,所有项目中相应的发票
将被取消选中。我想比较一下
- TotalItemCount=具有给定发票编号的
“1”项目数
- InvoicedItemCount=具有给定的
“1”且仍发票编号
已开具发票的
项目的数量
TotalItemCount = DCount("ItemID", "InvoiceDetails", "InvoiceNumber = 1")
对于第二个数字,我有一个SELECT查询,它提供SQL中的计数,但我不知道如何将其转换为VBA变量InvoicedItemCount
SELECT Count(InvoiceDetails.ItemID)
FROM InvoiceDetails INNER JOIN AllItems
ON InvoiceDetails.LoadID = AllItems.LoadID
WHERE InvoicedDetails.InvoiceNumber = 1 AND AllItems.Invoiced = True);
我知道
DoCmd.RunSQL
,但它只是运行查询,没有给出一个可输出的整数来存储为VBA变量。有没有一种方法可以单独在VBA中实现这一点?我从中获得了解决方案,Bernie指导我解决了这个问题
假设SQL查询返回一条记录,其中只有一个字段,并且我们需要一个值:
Dim rst As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT x FROM y WHERE z=z;"
Set rst = CurrentDb.OpenRecordset(strSQL)
VariableName = rst.Fields(0)
rst.Close
Set rst = Nothing
我想这是一个复制品:谢谢你,伯尼!那里的解决方案对我有效。干杯,伙计!很高兴见到你。