2017-08-20 121 views
1

我寫因爲我面臨非常耗時的問題,我還沒有解決。它與ms訪問查詢和表單數據交換連接。把它放在一個簡單的方式。我有以下形式: Form子窗體問題ms訪問vba

我有表中的汽車,並在它的列中的順序,如Q_Cars查詢中所示。我還使用VBA代碼(查詢選項)更新查詢,使用特定組合框(當前分配的兩個)更新子表單。不過,只有當我爲兩個組合框選擇值時纔有效。 你能幫我找到一種方法來把我的查詢條件標準的空組合框將運行查詢所有可用的數據?我嘗試使用例如內部標準以下結構查詢形式:

IIf(Formularze![Form]![T_id] <>""; «Wyr» Formularze![Form]![T_id] ;>0) 

或者其他企圖用的isEmpty,ISNULL函數但沒有成功。 你知道如何解決這個問題嗎? 在我的版本中,由於語言「,」被替換爲「;」裏面如果結構。 剩餘代碼:

Private Sub btn_clear_Click() 
Me.T_brand.Value = "" 
Me.T_id.Value = "" 
Me.T_color = "" 
Me.T_seats = "" 
Q_Cars_subform.Requery 
End Sub 
Private Sub T_brand_AfterUpdate() 
Q_Cars_subform.Requery 
End Sub 
Private Sub T_id_AfterUpdate() 
Q_Cars_subform.Requery 
End Sub 

和表 table 問候, 彼得

查詢代碼:

SELECT Cars.car_id, Cars.car_brand, Cars.car_color, Cars.car_seats 
FROM Cars 
WHERE (((Cars.car_id)=IIf(Formularze!Form!T_id<>"","«Wyr» Formularze![Form]![T_id] ",(Cars.car_id)>0)) And ((Cars.car_brand)=Formularze!Form!T_brand)); 
+0

'IIF'包含真正奇怪的代碼。你能解釋一下它的確切目的是什麼嗎?另外,你可以給我們那個查詢SQL嗎?有了這個,我可以很容易地解決這個問題。 –

+0

添加了查詢。目的是使用組合框按鈕在「形式」一詞下顯示過濾桌子汽車。 – Peter

回答

2

IIF包含無效代碼。

您可以在WHERE標準中使用邏輯OR聲明,不需要IIF

嘗試以下操作:

SELECT Cars.car_id, Cars.car_brand, Cars.car_color, Cars.car_seats 
FROM Cars 
WHERE (Cars.car_id = Formularze![Form]![T_id] OR Nz(Formularze![Form]![T_id]) = "") 
AND (Cars.car_brand = Formularze!Form!T_brand OR NZ(Formularze!Form!T_brand) = ""); 

注意,這將顯示所有的東西如果兩個都是空的,我可以調整,如果需要什麼在這種情況下顯示。