MS Office 365 专业增强版,Access 2007 - 2016
我最近注意到,我编写的触发器中 set 字段命令的定义在没有我做的情况下发生了变化。 我最近拆分了DB(前端/后端),但不确定这是否是导致这种情况的原因。 事情是这样的...
以前:
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,我没有做任何更改,但它不再喜欢那里的东西。
我能理解这一点。 "|"从何而来? 我没有把它放在那里。无论如何,我将其替换为","(常识),单击"保存"并获得相同的弹出窗口。
知道为什么我的","被替换为"|"会很有趣。 但我更愿意学习如何解决这个问题。 格式(现在(),"短日期")似乎也不起作用。
有什么想法吗?
你会喜欢这个的。 我想通了。 为了能够导入带有除","以外的分隔符的 csv,我设置了列表分隔符(使用...控制面板 -> 区域语言设置 -> 列表分隔符) 到(您猜对了)"|"。 我只是把它放回去,问题就消失了。
为什么默认列表分隔符设置会影响 Access 触发器深处的触发器定义的内容,这超出了我的理解范围。 但事实就是如此。
切勿尝试将日期/时间存储为文本 - 这是 Format 返回的内容。所以:
SetField
Name last_mod_date
Value = Now()
要仅存储日期:
SetField
Name last_mod_date
Value = Date()