- PR -

WSHのSQLで構文エラー

1
投稿者投稿内容
ゆい
会議室デビュー日: 2006/11/13
投稿数: 6
投稿日時: 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
伝兵衛
常連さん
会議室デビュー日: 2006/04/17
投稿数: 20
お住まい・勤務地: きっとあなたの側にいる
投稿日時: 2007-01-19 15:53
テーブル名 IN って予約語ですよね。。。。

未記入
大ベテラン
会議室デビュー日: 2006/12/15
投稿数: 157
投稿日時: 2007-01-19 15:57
Insider.NETでは無くDatabase Expert会議室向けのような気がしますが・・・

INというのはSQLでの予約語ですのでそのままでは使えないかと。
手元にAccess2003しかないので違うかもしれませんが、
Left(Format(IN.科目コード,'00000000')  ←構文エラー:演算子がありません
Left(Format([IN].科目コード,'00000000') ←OK
となりました。

テーブル名称を変えてみるか[]をテーブル名につけてみて下さい。
1

スキルアップ/キャリアアップ(JOB@IT)