2

我有一个 LotusScript (8.5.3) 例程,它使用 ODBC 将 Notes 数据从视图 (8.5.3) 写入 Microsoft Access 2010 数据库。我正在使用类似于下面的 SQL 语句来写入数据。我遇到的问题是将 Notes 日期/时间值获取到 Access 2010 日期/时间值的语法。

strSQL=|INSERT INTO DATASHEET("DocumentNumber","RevisionNumber","RevisionDate") VALUES('| >+ docnum + |','| + docrevnum + |',{d'| + revdate.DateOnly + |'} |

当我执行此操作时,我收到以下错误:

[Microsoft][ODBC Microsoft Access Driver] 查询 > 表达式 'd '06/23/2010'}' 中的语法错误(缺少运算符)

我确定我的语法是错误的,但我尝试了多种我在网上找到的引用的语法,但似乎没有一个有效。

真正知道语法应该是什么并且有工作的代码的人可以给我正确的语法。

更新:我尝试了以下语法:

strSQL=|INSERT INTO DATASHEET("DocumentNumber","RevisionNumber","RevisionDate") VALUES('| >+ docnum + |','| + docrevnum + |',#| + revdate.DateOnly + |#|

当我执行此操作时,我收到以下错误:

[Microsoft][ODBC Microsoft Access Driver] 查询表达式“#”中的日期语法错误。

谢谢,

乔丹

4

1 回答 1

2

HansUp 的评论就是答案。以下是语法的最终结果:

我第一次运行它时遇到的问题是它遇到了一个 NULL 日期,所以它不知道如何处理它。因此,我对以下更改感到疯狂:

If revdate.DateOnly="" then rdate="01/01/1900" 'This is Access' 等价于 null date else rdate=revdate.DateOnly end if

strSQL=|INSERT INTO DATASHEET("DocumentNumber","RevisionNumber","RevisionDate") VALUES('| >+ docnum + |','| + rdate + |',#| + revdate.DateOnly + |#|

谢谢您的帮助。

乔丹

于 2013-03-21T16:28:18.263 回答