2

ODBC を使用して、ビュー (8.5.3) から Microsoft Access 2010 データベースに Notes データを書き込む LotusScript (8.5.3) ルーチンがあります。以下のような 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'}'

構文が間違っていることは確かですが、Web で参照されている複数の構文を試しましたが、どれも機能していないようです。

構文がどうあるべきかを本当に知っていて、機能しているコードを持っている人は、正しい構文を教えてください。

更新:次の構文を試しました:

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

これを実行すると、次のエラーが発生します。

[Microsoft][ODBC Microsoft Access Driver] クエリ式 '#' の日付に構文エラーがあります。

ありがとう、

MJ

4

1 に答える 1

2

HansUp のコメントが答えでした。以下は、構文が最終的になったものです。

最初に実行したときに発生した問題は、NULL 日付に遭遇したため、それを処理する方法がわからなかったことです。そのため、次の変更を加えました。

If revdate.DateOnly="" then rdate="01/01/1900" 'This is Access' は null の日付と同等です else rdate=revdate.DateOnly end if

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

助けてくれてありがとう。

MJ

于 2013-03-21T16:28:18.263 に答える