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”)似乎也不起作用。
有什么想法吗?
答案 0 :(得分:0)
您会喜欢这个。 我想到了。为了能够使用除“,”以外的分隔符导入csv,我将列表定界符(使用...控制面板->区域语言设置->列表定界符)设置为“ |”(您猜对了)。我刚把它放回去,问题就消失了。
为什么在地球上默认的列表分隔符设置会影响Access触发器深处的触发器定义的内容超出我的范围。但是就在那里。
答案 1 :(得分:0)
您永远不要尝试将日期/时间存储为文本-这是Format返回的结果。所以:
SetField
Name last_mod_date
Value = Now()
仅存储日期:
SetField
Name last_mod_date
Value = Date()