【问题标题】:Display attachment field depending on another boolean field根据另一个布尔字段显示附件字段
【发布时间】:2016-07-27 18:12:43
【问题描述】:

我有 2 个表,一个包含一个布尔值,另一个包含一个附件字段。

两个表之间存在一对多的关系:

T1 (long ID_staff, txt firstname, attach signature)
T2 (long ID_signature, long fk_ID_staff, boolean isValid)

在我的表单中,我显示了这两个表的 INNER JOIN。结果,我有字段:

long ID_signature, txt firstname, attach signature, boolean isValid

我想要做的是仅当 isValid 等于 TRUE 时才在我的表单中显示我的附件(“签名”字段)。

有没有一种简单的方法可以在 VBA 中或直接在 Access 中执行此操作?

谢谢

【问题讨论】:

  • 但是您知道 SQL 以及 WHERE-Clause 是什么?
  • 那我必须做 2 个不同的查询,不是吗?我想要所有的行,即使 isValid = False,我只是不想在这种情况下显示附件。

标签: vba ms-access ms-access-2010


【解决方案1】:

听起来像是 IIf 函数的案例。

SELECT ID_signature, firstname, IIf([isValid], [signature], NULL) AS ValidSignature
FROM <your join>

【讨论】:

  • 它确实有效,但我仍然有一个问题。即使我将 ValidSignature 作为附件控件的来源,图片也没有显示。但该字段不是空的。 IIf(T_SIGNATURE.signature_validee,T_PERSONNEL.visa.FileData,Null) AS ValidSignature FROM T_PERSONNEL INNER JOIN...;
  • 我从未使用过附件字段,所以在这里帮不上忙。我建议一个新问题,包括当您直接使用表作为源而不是查询时它是否有效的信息。 @LostReality
【解决方案2】:

你可以使用IIF函数,例如

select ID_signature, [txt firstname], Iif([isValid] = "True",[attach signature], null) as [Signature] .....

另外,在列名中使用空格是不明智的,最好使用_而不是空格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多