日期字段名称: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))); ........但我仍然在转换失败。
答案 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类型。因此,您需要使用CDate
或CDbl
函数将其包装起来,将其视为日期。