我正在嘗試將 Count 查詢的結果放入一個變數中,以便我可以使用它(基本上我只需要知道它是否大于 0)。
我的代碼如下所示:
Set qdg = db.QueryDefs("quyGpSumReportCount")
qdg.Sql = Replace(qdg.Sql, "plugtable", VigilTable)
qdg.Sql = Replace(qdg.Sql, "plugchurch", "'" & vChurch & "'")
Set rst = qdg.OpenRecordset("quyGpSumReportCount")
Debug.Print "Total = " & rst!Total
PartCnt = rst!Total
rst.Close
Set rst = Nothing
替換完成后,第一個教堂的查詢本身如下所示:
FROM (SELECT DISTINCT t.fldUserID, v.[fldChurch/Parish] FROM tblSpring2022 _
AS t INNER JOIN tblVolunteers AS v ON t.[fldUserID] = v.[ID] WHERE _
(v.[fldChurch/Parish] = '1548 Heights')) AS [%$##@_Alias];
由于在運行后我沒有更改回查詢,我可以切換到資料表視圖并查看結果:在欄位總計中,有一個條目,它的值為 1。(我已經運行了幾個不同的教堂,當然會得到不同但準確的值??,包括 0 代表少數。)
但是,我每次嘗試使用欄位名稱、Total 或 Fields(0) 或 rst.Fields(0) 或我在互聯網上能想到或找到的任何其他內容來捕獲值,總是出現 Null .
所以查詢正在運行并回傳正確的結果,但我似乎完全無法從 VBA 中訪問該結果。
我究竟做錯了什么?
謝謝。
uj5u.com熱心網友回復:
好的,我沒有解決這個問題,你們解決了;但它已經解決了。
由于我完全無法理解的原因,qdg.OpenRecordset 和 qdf.OpenRecordset 都導致了資料轉換錯誤。但是上面建議的 db.OpenRecordset 可以完美運行。它不僅會運行,而且查詢的結果會同時進入 MsgBox 和表單上的文本框,這使我可以使用它。
如果我可以對評論進行投票,我會;畢竟,解決方案就在那里。
謝謝大家!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/468363.html
上一篇:使用AccessVBA將資料(影像)插入Word檔案
下一篇:如果為空,如何回傳0
