【问题标题】:Subform issue ms access vba子表单问题 ms 访问 vba
【发布时间】:2017-08-20 06:51:59
【问题描述】:

我正在写作,因为我遇到了非常耗时的问题,我还没有解决。它与ms访问查询和表单数据交换相连。简单地说。我有以下表格: Form

我有汽车表,其中列按 Q_Cars 查询中所示的顺序排列。我还有使用特定组合框(当前分配了两个)更新的子表单,这些组合框正在使用 VBA 代码(重新查询选项)更新查询。但是,只有当我只为两个组合框选择值时它才有效。 你能帮我找到一种方法来放置一个查询条件,对于一个空的组合框,它将使用所有可用数据运行查询? 我尝试使用例如查询表单中条件内的以下结构:

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

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

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

【问题讨论】:

  • IIF 包含非常奇怪的代码。你能解释一下它的确切目的是什么吗?另外,你能给我们查询 SQL 吗?有了这个,我可能很容易解决这个问题。
  • 已添加查询。目的是使用“form”字下图片中显示的组合框按钮过滤表 Cars。

标签: vba forms ms-access


【解决方案1】:

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

请注意,如果两者都为空,这将显示所有内容,如果需要,我可以调整它以在这种情况下不显示任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    相关资源
    最近更新 更多