2017-08-20 97 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) = ""); 

注意,这将显示所有的东西如果两个都是空的,我可以调整,如果需要什么在这种情况下显示。