【问题标题】:Dmin for Dates in Microsoft AccessMicrosoft Access 中日期的 Dmin
【发布时间】:2016-06-14 10:30:30
【问题描述】:

在 Microsoft Access 中使用 dmin 真的很糟糕。我正在尝试在 Design Query 中执行此操作,而 dmin 让我很伤心。

这样做的目的是设计一个通用查询,当给定公司名称时,它将创建一个包含所有现有字段的表和一个包含该给定公司最早到期日期的新字段

例如源表如下:

Company         Facility  Fee   Due Date
ABC Pty Ltd Tr. 1     500   1-Jun
ABC Pty Ltd Tr. 1      51   3-Jun
ABC Pty Ltd Tr. 2     400   1-May
EFT Pty Ltd Tr. 1     400   5-Jun
EFT Pty Ltd Tr. 2     845   6-Jun
EFT Pty Ltd Tr. 3     100   3-Sep

所以在下面的示例中,当用户在我的查询中输入公司名称为“ABC Pty ltd”时,他应该会返回:

Company         Facility  Fee   Due Date   Earliest
ABC Pty Ltd Tr. 1     500   1-Jun      1-May    
ABC Pty Ltd Tr. 1      51   3-Jun      1-May
ABC Pty Ltd Tr. 2     400   1-May      1-May

我尝试使用 dmin 作为查询中的字段,如下所示:

表达式:DMin([Due Date],"source","[company] ='" & [来源]![公司名称] & "'")

我得到的只是

Company         Facility  Fee   Due Date   Earliest
ABC Pty Ltd Tr. 1     500   1-Jun      1.552545454   
ABC Pty Ltd Tr. 1      51   3-Jun      4.3253968253968
ABC Pty Ltd Tr. 2     400   1-May      3.543083900

所以 Dmin 似乎没有工作(更不用说 dmin 似乎无法处理日期的事实)

有人可以帮忙吗?

谢谢

【问题讨论】:

  • [截止日期] 字段数据类型是日期? DMin 适用于字段数据数据类型。
  • 是的数据类型是[到期日]的日期/时间

标签: ms-access


【解决方案1】:

如果您的日期是真实的日期值,DMin 将立即生效。

如果是像“1-Jun”这样的字符串,使用CDate进行转换:

DMin(CDate([Due Date]),"source","[company] ='" & [source]![company name] & "'")

如果您想要所有公司的最短日期,请不要过滤公司,因此:

DMin("[Due Date]"),"source")

如果您想要一家公司的最短日期,请过滤该公司,因此:

DMin("[Due Date]","source","[company] ='" & [source]![company name] & "'")

【讨论】:

  • 在源表中,[到期日期]数据类型设置为日期/时间,格式为dd/mm/yyyy。即使添加了 Cdate,我的答案仍然是 1.24007936507937E-03。更不用说我每行都有不同的答案(我需要每行的答案相同,即每条记录的最早日期字段需要显示 1-May)
  • 日期值的格式仅供显示。在您的查询中,您应用了“d-mmm”格式。要为所有公司返回相同的最短日期,请排除过滤 - 请参阅编辑。
  • 嗨,gustav,谢谢。我想要实现的是,当用户在查询中输入“ABC Pty Ltd”时,它会返回 1- May 但是当用户输入 EFT Pty ltd 时,它将返回 5 Jun,这是该特定公司的最早到期日
猜你喜欢
  • 1970-01-01
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多