更新日期字段

时间:2015-01-14 14:07:34

标签: ms-access sql-update access-vba

日期字段名称:EmailDate, 表名:MissingT, 备注字段名称:工作日志。

我正在尝试查询工作日志并找到一个单词“生效日期:”并在“生效日期:”之后的同一行中获取其余字符。然后用它更新“EmailDate”字段。

UPDATE MissingT SET MissingT.Emaildate = mid([Worklog],(InStr(1,[Worklog],'Effective Date: ')+16),13)
WHERE (((MissingT.[worklog]) Like  "*" & 'Effective Date: ' & "*" ));

我收到转换错误消息。

另外,无论如何都要从下往上搜索Worklog备忘录字段,而不是从上到下搜索?我创建了另一个名为“TempD”的字段并首先在那里获取日期。所以TempD提交的日期看起来像“2014年12月3日星期三”。然后我做了查询,用cdate函数更新emaildate,如下所示:UPDATE MissingT SET MissingT.emaildate = cdate(格式(右([tempd],4)&“/”& Mid([tempd],6,3 )&“/”& Mid([tempd],9,2))); ........但我仍然在转换失败。

1 个答案:

答案 0 :(得分:1)

这可能比您之前的问题 - Fnd 2nd occourance of a string in a Memo Field

更棘手

自下而上,使用StrReverse功能。

? StrReverse("Hello World!")
!dlroW olleH

但是,如果您希望搜索特定String的起始位置,则可以使用InStrRev函数,

? InStrRev("Hello World! It is a wonderful day. It truly is", "It")
 37 
? InStr("Hello World! It is a wonderful day. It truly is", "It")
 14 

您遇到的错误是因为Mid返回了一个String,但我的理解是字段EmailDate是一个Date类型。因此,您需要使用CDateCDbl函数将其包装起来,将其视为日期。