這不是一個關於哪個更好的問題,而是關於它們爲什麼在功能上有所不同的問題。我遇到的問題已經解決,但我很好奇爲什麼會發生這種行爲。ADO和DAO之間的區別
背景 - 使用Excel vba從Access數據庫中提取數據。當用戶單擊一個按鈕時,一個記錄集將從Access中提取出來,並將各種數據填充到電子表格中。然後,從另一個查詢中提取另一個記錄集以填充電子表格的另一部分。
ADO做了什麼 - ADO非常適合我的第一個記錄集。但是,我的第二個記錄集轉到Access中的查詢中,運行,並且不返回任何行。如果我在Access中運行這個查詢,它會打開(大約3到4秒後)。這個查詢有多個連接,計算項目,限制和可能的聯合查詢(我嘗試了許多不同的方式,有/沒有聯合等)。我嘗試關閉並重新打開ado連接。我試着改變超時值,我甚至使用ADO命令測試了對這些數據的Make表查詢,然後從表中取出(這種方式有效,但不是最好的情況,因爲數據不斷變化,而且我不希望每次有人使用此工具時都要運行make table查詢)。
所以,我改變了第二個數據拉到DAO,你看,它的工作原理。第一個數據是ADO(我通常更喜歡使用),但現在考慮將其更改爲DAO,因爲我寧願在代碼中使用一種數據訪問方法。
那麼,有人可以向我解釋爲什麼ADO不會在一個情況下拉數據,但DAO會?再次,這純粹是爲了信息的目的。
在看不到代碼的情況下很難評論,但它可能是cusrsor類型/記錄集類型問題。你是否依賴代碼中的默認值?如果您只使用Access,那麼DAO是一個更好的選擇,因爲它是Access原生的,並提供比ADO更多的控制 – SWa 2012-03-16 12:31:11
在哪裏使用通配符?這是一個常見問題,對於ADO而言,通配符是%,而DAO是(通常)*。 – Fionnuala 2012-03-16 13:49:17
@Remou,我很熟悉兩者之間通配符的區別,但不幸的是我不在查詢中使用它們。 – APrough 2012-03-16 14:33:32