我实际上有两个问题。
我是Access的初学者,仍在努力深入了解该软件。我正在尝试使用借用系统为库(学校项目)创建数据库。我在一个名为DueDate和DateHired的表中有两个字段。 DueDate函数在表达式= Now()+ 28上,DateHired函数在表达式= Now()上。基本上提前截止日期提前4周。我的第一个问题很简单;如果我今天要输入一条记录,那么两个DueDate / DateHired字段明天会保持相同的日期和时间吗?或者他们会更新到明天的Now()吗?
我的第二个问题是关于表达的问题。我试图制作一个过期复选框。前提是如果Now()> DateDue,那么复选框将是'是'。我在ControlSource部分中的当前代码是:
= CBool函数([DateDue]
然而,该复选框只显示'#错误'而不是是/否。我还担心如果第一个问题的答案是' = Now()在添加记录后保持不变并且不会更新'这也意味着除非您在截止日期之后输入记录,否则逾期功能将无法正常工作。这没有任何意义。有什么建议?
干杯。
答案 0 :(得分:0)
这与你的第二个问题有关。您可以针对第一部分提出单独的问题。
=CBool([DateDue]
您要在此处执行的操作是将Date
数据类型转换为Boolean
(顺便说一下,您错过了右括号),这是不可能的。
您应该做的是检查截止日期是否小于今天并返回相应的True/False
值。
IIf([DueDate] < Date(), True, False)
这意味着:
IIf("Is due date in the past?", "Yes, it's overdue", "No, it's not overdue")
您可以详细了解IIf
函数here。
答案 1 :(得分:0)
确实作为初学者,养成使用日期功能的习惯。之后你可以转向更聪明的&#34;顺便说一下,这些方法往往不聪明。
<强> 1 强>
如果存储日期,则表格中的日期保持不变。除非你特别需要时间,否则不要使用Now:
DateDue = DateAdd("d", 28, DateHired)
或在查询中 - 使用设计器:
DateDue: DateAdd("d",28,[DateHired])
或作为表单上文本框的ControlSource:
=DateAdd("d",28,[DateHired])
<强> 2 强>
您可以使用 DateDiff :
Due = DateDiff("d", DateHired, Date) > 28
或在查询中 - 使用设计器:
Due: DateDiff("d",[DateHired],Date()) > 28
或作为表单上文本框的ControlSource:
=DateDiff("d",[DateHired],Date()) > 28
并将文本框的格式属性设置为是/否或其他对用户有意义的内容。