- - PR -
WSHのSQLで構文エラー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-01-19 15:19
いつもお世話になります。WSH初心者のゆいです。
WSHでSQLを利用して、mdbファイルを参照してテーブルにデータ追加したいのですが実行エラーが表示され うまくいきません。どこが悪いのかよくわかりません。先輩方、ご教授よろしくお願いします。 14行目がエラー表示され、メッセージが 『クエリ式 Left(Format(IN.科目コード,'00000000'),5) & '-' & Right(IN.科目コード,2) & '-' & Mid(Format(IN.科目コード,'00000000'),6,1) & '-' & IN.取引日 の構文エラー:演算子がありません』 とエラー表示されます。。。。 1>strCon = _ 2> "Provider = Microsoft.Jet.OLEDB.4.0;Data source = " & _ 3> "\\182.185.100.100\\01共通文書\\mdb\\NN01TEST.mdb" 4> 5>Set myCon = CreateObject("ADODB.Connection") 6>myCon.Open strCon 7> 8> 9>'====IN_q1の作成 10>strSQL = "" 11>strSQL = strSQL & " INSERT INTO IN_q1 ( キー, 統括支所, 本支所コード, " 12>strSQL = strSQL & " ・・・・・・・・・・・・・・(省略)・・・・・・・・・・・・ )" 13>strSQL = strSQL & " 事前発行区分, 事前発行区分名 ) " 14>strSQL = strSQL & " SELECT Left(Format(IN.科目コード,'00000000'),5) & '-' & Right(IN.科目コード,2) & '-' & Mid(Format(IN.科目コード,'00000000'),6,1) & '-' & IN.取引日 AS キー, " 15>strSQL = strSQL & " IN.統括支所, IN.本支所コード, IN.本支所名, IN.決算区分, IN.伝票NO, " 16>strSQL = strSQL & " Val(Left(Format(IN.科目コード,'00000000'),5)) AS 科目5桁, " 17>strSQL = strSQL & " Val(Mid(Format(IN.科目コード,'00000000'),6,1)) AS 発生支所コード, " 18>strSQL = strSQL & " IIf(Mid(Format(IN.科目コード,'00000000'),6,1)=1,'AAA', " 19>strSQL = strSQL & " IIf(Mid(Format(IN.科目コード,'00000000'),6,1)=2,'BBB', " 20>strSQL = strSQL & " IIf(Mid(Format(IN.科目コード,'00000000'),6,1)=3,'CCC', " 21>strSQL = strSQL & " IIf(Mid(Format(IN.科目コード,'00000000'),6,1)=4,'DDD', " 22>strSQL = strSQL & " IIf(Mid(Format(IN.科目コード,'00000000'),6,1)=5,'EEE', " 23>strSQL = strSQL & " IIf(Mid(Format(IN.科目コード,'00000000'),6,1)=6,'FFF', " 24>strSQL = strSQL & " IIf(Mid(Format(IN.科目コード,'00000000'),6,1)=7,'GGG ', " 25>strSQL = strSQL & " IIf(Mid(Format(IN.科目コード,'00000000'),6,1)=0,'HHH',' ')))))))) AS 発生支所名, " 26>strSQL = strSQL & " Val(Right(IN.科目コード,2)) AS 履歴キー, " 27>strSQL = strSQL & " IN.取引日, ・・・・・・・・・・・(省略)・・・・・, IN.事前発行区分名 " 28>strSQL = strSQL & " FROM IN; " 29> 30>myCon.Execute strSQL |
|
投稿日時: 2007-01-19 15:53
テーブル名 IN って予約語ですよね。。。。
|
|
投稿日時: 2007-01-19 15:57
Insider.NETでは無くDatabase Expert会議室向けのような気がしますが・・・
INというのはSQLでの予約語ですのでそのままでは使えないかと。 手元にAccess2003しかないので違うかもしれませんが、 Left(Format(IN.科目コード,'00000000') ←構文エラー:演算子がありません Left(Format([IN].科目コード,'00000000') ←OK となりました。 テーブル名称を変えてみるか[]をテーブル名につけてみて下さい。 |
1