MS Access,在触发器中,SetField的格式(Now(),“短日期”)已损坏

时间:2019-07-17 19:35:14

标签: ms-access

MS Office 365 ProPlus,Access 2007-2016

我最近注意到,我编写的触发器中的set field命令的定义没有做任何更改。我最近拆分了数据库(前端/后端),但是不确定这是什么原因造成的。这就是发生的事情...

之前:

SetField
    Name last_mod_date
    Value =Format(Now(),"Short Date")

现在...

SetField
    Name last_mod_date
    Value =Format(Now()|"Short Date")

(这不是拼写错误,用“ |”代替了“,”)

如果我要做的就是单击“更改前”(在“表格”选项卡下,查看我的触发器),然后单击“保存”,我会弹出一个窗口...

The 'SetField' macro action has an invalid value for the 'Value' argument."

(并突出显示SetField块中的“值”行。)

IOW,我没有进行任何更改,但不再喜欢那里的内容。
我可以理解。 “ |”在哪里来自?我没有把它放在那里。无论如何,我将其替换为“,”(常​​识),单击“保存”并获得相同的弹出窗口。

知道为什么我的“,”被替换为“ |”会很有趣。但我宁愿学习如何解决此问题。 Format(Now(),“ Short Date”)似乎也不起作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您会喜欢这个。 我想到了。为了能够使用除“,”以外的分隔符导入csv,我将列表定界符(使用...控制面板->区域语言设置->列表定界符)设置为“ |”(您猜对了)。我刚把它放回去,问题就消失了。

为什么在地球上默认的列表分隔符设置会影响Access触发器深处的触发器定义的内容超出我的范围。但是就在那里。

答案 1 :(得分:0)

您永远不要尝试将日期/时间存储为文本-这是Format返回的结果。所以:

SetField
    Name last_mod_date
    Value = Now()

仅存储日期:

SetField
    Name last_mod_date
    Value = Date()