访问VBA:SQL字符串,字符串表字段转换为日期

时间:2017-02-20 09:50:51

标签: sql datetime access-vba

通常,我会通过反复试验找出DateTimeVBA中的SQL个问题,但在这种情况下,我遇到了障碍。

我甚至不确定我能做我想做的事。

我有一个包含字段F1,F2等的临时表。

字段F7包含日期字符串,格式为dd / MM / yyyy。

现在,我想将数据从临时表复制到一个表,其中字段F7中的数据应存储在Date/Time字段中。该字段的格式为短日期(dd-MM-yyyy)。

我尝试过单独使用CDate()Format()Trim()以及几种组合,同时使用##填充我的日期数据,并在我的表{{1}中添加括号[]但是我找不到正确的组合。

这是我的代码。 fieldname工作正常,因为我使用的是变量。但对于字段F7,我将importedDate查询与SQL日期转换混合在一起,并且它对我不起作用:

VBA

非常感谢任何帮助。我正在使用Access 2013。

感谢。

2 个答案:

答案 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() " _

非常感谢您提供快速有用的帮助!