2016-09-14 13 views
0

我試圖創建一個可以從MS Access中的按鈕運行的查詢。我創建的SQL查詢如下:在MS Access中填充數據表的查詢,以及如果沒有返回值的MsgBox

PARAMETERS CASNUMBER Text (255); 
SELECT DISTINCT Chemical.Chemical_Name, Hazard.Hazard_Code, Hazard.Hazard_Text 
FROM Chemical, Chemical_Hazard, Hazard 
WHERE Chemical.Chemical_Id = Chemical_Hazard.Chemical_Id 
and Chemical_Hazard.Hazard_Id = Hazard.Hazard_Id 
and [CASNUMBER] = Chemical.CAS 

;

如何使它在沒有返回值時出現MsgBox?

+0

什麼是您的按鈕,現在怎麼辦?你有VBA代碼打開querydef記錄集,從用戶傳遞CASNUMBER嗎?之後,你只需檢查你的ecordset.EOF - 如果是的話 - 沒有記錄返回 - 打開一個MsgBox – dbmitch

回答

0

我建議使用JOIN而不是WHERE連接表。你也可以避免使用參數,在大多數情況下,這個參數需要用於查詢執行的VBA代碼。只要創建不帶參數的查詢,添加中科院列清單:

SELECT DISTINCT Chemical.Chemical_Name 
    ,Hazard.Hazard_Code 
    ,Hazard.Hazard_Text 
    ,Chemical.CAS 
FROM (
    Chemical_Hazard INNER JOIN Chemical ON Chemical.Chemical_Id = Chemical_Hazard.Chemical_Id 
    ) 
INNER JOIN Hazard ON Chemical_Hazard.Hazard_Id = Hazard.Hazard_Id 

,然後再檢查CAS代碼:

If DCount("*", "MyQuery", "CAS=" & lngCASNumber) = 0 then 
    MsgBox "CAS not found" 
End If 
+1

用戶輸入到變量'lngCASNumber'在我的例子中,文本框可以用來代替變量。我刪除了最後一個條件,因爲它移到了Dcount函數where子句:'「CAS =」&lngCASNumber' –

相關問題