繁体   English   中英

子问题MS Access VBA

[英]Subform issue ms access vba

我写这封信是因为我遇到了尚未解决的非常耗时的问题。 它与ms访问查询和表单数据交换连接。 简单地说。 我有以下表格: 表格

我有带有汽车的表,并且表中的列按Q_Cars查询所示的顺序排列。 我也有使用特定组合框(当前分配了两个)进行更新的子窗体,这些组合框使用VBA代码(requery选项)更新了查询。 但是,仅当我仅选择两个组合框的值时,它才起作用。 您能否帮助我找到一种方法来放置查询条件条件,该条件对于一个空的组合框将使用所有可用数据运行查询? 我试图以查询形式在条件内使用例如以下结构:

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

或其他尝试使用isempty,isull函数但未成功的尝试。 你知道如何解决这个问题吗? 在我的版本中,由于语言“,”被替换为“;” 里面如果结构。 剩余代码:

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

和桌子问候,彼得

查询代码:

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));

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) = "");

请注意,如果两个都为空,它将显示所有内容,如果需要,我可以对其进行调整以使其不显示任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM