2017-06-04 32 views
0

過去,我一直通過查詢數據庫,將它放在工作表上,排序,讀入數組,然後循環創建文檔來生成報告。我現在要做的是直接從記錄集生成報告。在VBA中使用ADO Recordset進行條件循環

我雖然這個問題在使用數組我有一個絕對的記錄號的時候,所以我可以檢查,如果在以前記錄的字段是一樣的,在目前的戰績是。

用記錄集去做這件事的最好方法是什麼?將字段值存儲在變量中?使用嵌套的While循環?獲取總記錄數並使用絕對位置來回移動(這似乎不是一個好主意)?

UPDATE 該記錄集包含來自20個不同公司的多個記錄。我按公司名稱排序查詢,然後開始循環查看。然後我需要檢查每條記錄,看看它是否與上一家公司相同,如果不爲該公司創建新的工作表。

+0

其中一些似乎是合理的方法 - 爲什麼不試試? –

+0

我覺得這很可能是一種常見的任務,有人可以快速回答它。更重要的是,我有興趣找出最好的方法是什麼,所以我不會最終得到一些有用的東西,但不應該因爲任何原因而被使用。 – pheeper

+3

只要您需要構建報告,就很難知道最佳方法是什麼,而不知道您的確切需求。如果您只需要跟蹤一個或多個特定字段的值何時更改,那麼使用變量來跟蹤先前的值就可以正常工作。 –

回答

0

我通常在查詢中使用「Order By」子句進行排序。然後,使用變量循環訪問已排序的記錄,以跟蹤當前的排序順序名稱,並通過將當前記錄名稱字段與變量值進行比較來檢測名稱更改。