【问题标题】:MS-Access conditional format date in tabular forms row by row表格形式的 MS-Access 条件格式日期逐行
【发布时间】:2020-06-12 14:34:44
【问题描述】:

我创建了一个数据库来存储家谱记录。我创建了一个表格形式来显示包含日期文本框的记录,但是我正在努力显示每行格式不同的日期文本框。我需要的不同格式是已知完整日期的“dd/mm/yyyy”,仅知道年份的“yyyy”,如果日期未知,则文本框留空。表格对齐的表格有一个字段来指示日期是完整日期、仅年份还是没有日期 - 字段值“fd”、“yo”和“nd”,因此很容易测试每行所需的格式. 我看不出使用条件格式选项是如何实现的。 我很高兴使用 VBA,但一直在为此苦苦挣扎。我是 Access 的新手,也是 VBA 的新手,但有技术背景(C++ 和 Java 编码),而 VBA 目前对我来说看起来很陌生 - 但愿意进入它。 任何指点都将不胜感激。

【问题讨论】:

  • 我认为您不能以连续的形式执行此操作,因为该格式应用于控件。使用 inline-if IIF(condition, True, False)Switch() 在源(查询)处格式化可能会更容易。

标签: vba date ms-access conditional-statements


【解决方案1】:

始终将日期存储为 DateTime,因为它可以存储为 Null 用于未知。

然后,有一个布尔字段 YearOnly 来标记仅知道年份的值;将年份与一年中的任何日期一起存储,例如 2020-01-01。

现在,使用这样的查询:

SELECT 
    ID, 
    [Date], 
    YearOnly, 
    Format([Date],"yyyy" & IIf(Not [YearOnly],"-mm-dd")) AS DisplayDate
FROM 
    YourTable;

【讨论】:

    【解决方案2】:

    [已解决] 谢谢 Kostas K 和 Gustav,我已经实现了您建议的查询,这让我花了一段时间才弄清楚,但我现在已经以表格形式工作了。我的问题是我试图在加载表单时使用 VBA 来实现这一点。 VBA 明智的我是一个完整的新手。 谢谢鲍勃H

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      相关资源
      最近更新 更多