通常,我会通过反复试验找出DateTime
和VBA
中的SQL
个问题,但在这种情况下,我遇到了障碍。
我甚至不确定我能做我想做的事。
我有一个包含字段F1,F2等的临时表。
字段F7包含日期字符串,格式为dd / MM / yyyy。
现在,我想将数据从临时表复制到一个表,其中字段F7中的数据应存储在Date/Time
字段中。该字段的格式为短日期(dd-MM-yyyy)。
我尝试过单独使用CDate()
,Format()
和Trim()
以及几种组合,同时使用##填充我的日期数据,并在我的表{{1}中添加括号[]但是我找不到正确的组合。
这是我的代码。 fieldname
工作正常,因为我使用的是变量。但对于字段F7,我将importedDate
查询与SQL
日期转换混合在一起,并且它对我不起作用:
VBA
非常感谢任何帮助。我正在使用Access 2013。
感谢。
答案 0 :(得分:1)
这非常简单:
& "SELECT F1, F2, F3, F4, F5, F6, DateValue(Replace(F7, '.', '-')), F8, F9, '', '', '', '', F10, F11, F12, '', '', 0, Date() " _
或者,如果F7是点缀的(更正为具有替换的单引号):
beta.32.3
答案 1 :(得分:0)
使用古斯塔夫的建议。
DateValue不起作用,可能是因为我的丹麦语语言环境。我认为它返回了错误的日期格式(对我来说),导致NULL
被插入到表的F7
字段中。这不起作用,但可能适用于具有不同日期格式的其他人:
& "SELECT F1, F2, F3, F4, F5, F6, DateValue(Replace(F7, ""."", ""-"")), F8, F9, '', '', '', '', F10, F11, F12, '', '', 0, Date() " _
但CDate
解决了我的问题并添加了额外的"
。这对我有用:
& "SELECT F1, F2, F3, F4, F5, F6, CDate(Replace(F7, ""."", ""-"")), F8, F9, '', '', '', '', F10, F11, F12, '', '', 0, Date() " _
非常感谢您提供快速有用的帮助!