2017-05-10 30 views
-3

我創建了一個更新查詢,它通過ID#引入類型;但是,如果沒有匹配所有ID,我想使用從選擇查詢中標識的最常見類型填充空白類型。我如何做到這一點,而不使用VB(如果可能)?這裏是我嘗試的(提前致謝):從選擇查詢(輸入參數值)中搜索並替換爲空值

  1. 更新查詢1:將ID和類型(表1)與新的ID列表(表2)進行匹配。如果存在ID匹配,則使用表1中的匹配填寫表2中的類型。
  2. 選擇查詢1:標識表2中類型的所有可能性,並按計數順序對它們進行分組。
  3. 更新查詢2:標識表2中類型下的所有空值,並使用選擇查詢1中具有最高計數的類型更新它們;但是,我收到輸入參數值錯誤。
+0

即使您不使用首選SQL視圖,尋求查詢幫助時的最佳做法是在問題中包含SQL。否則,它會使識別問題變得非常困難或不可能,例如出現參數錯誤。多言的解釋是不夠的。閱讀stackexchange幫助以獲得正確的代碼格式。編輯您的問題並粘貼三個查詢中的每一個的SQL。 –

回答

0

這是一個快速的第一次嘗試。如果你發佈你的查詢SQL,也許我可以改進這一點。

UPDATE Table2 
SET Table2.Type = DLookUp("[Type]","Select Query 1", 
    "[CountOfType] = (SELECT Max([CountOfType]) FROM [Select Query 1])") 
WHERE (Table2.Type Is Null) 

注1:如果有多於一種類型的值,該值是最常見的(即多個類型的值在[選擇查詢1]相同的計數)這個解決方案將隨機選擇其中之一。

注2:這不需要單獨的VBA模塊,也不需要編寫自己的VBA函數。但是,DLookup是一個訪問域集合函數,並不是本機SQL函數,因此技術上在Access VBA引擎中調用並執行。這些功能非常有用且功能強大,減少了必須編寫和維護的查詢數量,才能完成某些任務。但是,可以創建一組使用「純」SQL完成相同任務的附加查詢。