
システム:
Microsoft Windows XP
Professional
Version 2002
Service Pack 3
データベース:
Microsoft(R) Access 2000
言語:
Microsoft Visual Basic 6.0
For 32-bit Windows Development
で、以下のSQLを実行すると、実行時エラー'3075'が発生します。
xSQL1 = xSQL1 & " WHERE ((条件2 = '1' OR 条件3 = '1') "
xSQL1 = xSQL1 & " AND (((int(使用現場数) >= 2) "
xSQL1 = xSQL1 & " OR ((使用現場数 = '1' AND 調査年数 >= '1' "
xSQL1 = xSQL1 & "AND ((最新の場所 in ('自社倉庫','自社空地','貸倉庫','借地','その他')))"
xSQL1 = xSQL1 & "OR ((処分日 is not null) or 処分日 <> """")) ))"
xSQL1 = xSQL1 & " AND (機械コード番号2 = '4401' OR 機械コード番号2 = '4402'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4702' OR 機械コード番号2 = '4703'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4704' OR 機械コード番号2 = '4705'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4706' OR 機械コード番号2 = '4707'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4708' OR 機械コード番号2 = '4709'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4710' OR 機械コード番号2 = '4713'"
xSQL1 = xSQL1 & " OR 機械コード番号2 = '4309' OR 機械コード番号2 = '4701'))"
xSQL1 = xSQL1 & " OR (((int(使用現場数) >= 3)"
xSQL1 = xSQL1 & " OR ((使用現場数 = '2' AND 調査年数 >= '1'"
xSQL1 = xSQL1 & " AND ((最新の場所 in ('自社倉庫','自社空地','貸倉庫','借地','その他')))"
xSQL1 = xSQL1 & " OR ((処分日 is not null) or 処分日 <> """")) ))"
xSQL1 = xSQL1 & " AND (機械コード番号2 <> '4401' AND 機械コード番号2 <> '4402'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4702' AND 機械コード番号2 <> '4703'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4704' AND 機械コード番号2 <> '4705'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4706' AND 機械コード番号2 <> '4707'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4708' AND 機械コード番号2 <> '4709'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4710' AND 機械コード番号2 <> '4713'"
xSQL1 = xSQL1 & " AND 機械コード番号2 <> '4309' AND 機械コード番号2 <> '4701'))))"
何がおかしいのでしょうか?
ご教授願います。
No.3
- 回答日時:
最近、Access は、いじっていないので、明確なことは、言えませんが、参考までに投稿してみます。
>> accessでSQLを実行してみたところ、『演算子がありません』とのエラーメッセージが表示されました。
との、コメントですが、
xSQL1 = xSQL1 & " OR ((使用現場数 = '1' AND 調査年数 >= '1' "
← この部分で、'1' を、' で、くくっていますが、[調査年数]フィールドの型は、文字列ですか ?
つまり、「1」の文字より大きい値を、判断させているような気がします。
xSQL1 = xSQL1 & "OR ((処分日 is not null) or 処分日 <> """")) ))"
← この部分で、[処分日]フィールドのNull値を判断させているようですが、[処分日]フィールドの型は、文字列ですか ?
気持ちは、解りますが、「処分日 <> """"」のような SQL の記載方法で、小生自身、以前、失敗した経験があります。
あと、各々のフィールドの型は、未明ですが、フィールドの型と、判断させる値の型は、一致してますか?
最後に、小生自身、エックス線管の名版作成の歳、Access をデータベースに利用した経験があります。
その際、テーブル名称とフィールド名称を日本語の文字を利用した際、[]で、くくると、うまく動作したことがありました。
的が、外れていたらごめんなさいね。
-以 上-
No.2
- 回答日時:
実行時エラー'3075'で検索すれば、SQLの文法が間違っているという
レベルで共通だけど、その原因は複数あることが分かります。
Access のエラーメッセージが返ってきたのをそのまま表示している
だけだと思われるので、エラーメッセージに日本語で原因を書いて
くれてませんか?
「クエリー式'XXX'の文字列の構文エラーです」とか
「演算子がありません」とか。
それに合わせて修正したらいいと思います。
実際に実行されているSQL(提示のものは条件句のみですよね?)
をテキスト出力して、Accessで直接実行してみて下さい。
その時点で動かないはずです。
この回答への補足
ご回答ありがとうございます。
accessでSQLを実行してみたところ、『演算子がありません』とのエラーメッセージが表示されました。ですが、演算子が足りない箇所はないように見えるのですが。。
ちなみに、vbでのエラーメッセージが表示されるダイアログボックスにメッセージが入りきっていないのですが、どうすればすべてのエラーメッセージを読めるのでしょうか?
基本的なこともわかっていなくて申し訳ないのですが、ご回答をお願い致します。
No.1
- 回答日時:
実行時エラー'3075'が具体的に何を表すかは不明です。
(おそらくSQL文の構文エラー関係のエラーと思われる)
処理日のデータ型が何かわからないが、その比較文は正しいのでしょうか?
この回答への補足
ご回答ありがとうございます。
以前は、以下のSQLを実行していましたが、上手く動作していましたので、処分日の比較は正しいと思います。
xSQL1 = ""
xSQL1 = "SELECT * "
xSQL1 = xSQL1 & " FROM 金額表示一覧表"
If FrmHikaku.Chk_genba Then
xSQL1 = xSQL1 & " WHERE (条件2 = '1' OR 条件3 = '1') "
xSQL1 = xSQL1 & " AND (使用現場数 >= '1' AND 調査年数 >= '1') "
Else
xSQL1 = xSQL1 & " WHERE (条件2 = '1' OR 条件3 = '1') "
xSQL1 = xSQL1 & " AND ((int(使用現場数) >= 2) "
xSQL1 = xSQL1 & " OR ((使用現場数 = '1' AND 調査年数 >= '1' "
xSQL1 = xSQL1 & "AND ((最新の場所 in ('自社倉庫','自社空地','貸倉庫','借地','その他')))"
xSQL1 = xSQL1 & "OR ((処分日 is not null) or 処分日 <> """")) ))"
End If
すみませんが、ご回答をお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MessageBoxで表示される文字列...
-
エクセルに見えない文字(JISX0...
-
1日に1人がこなせるプログラム...
-
ユーザーフォームに2つのコン...
-
MIPSコードへの変換
-
ACCESSユニオンクエリでORDER B...
-
フィルターかけた後、重複を除...
-
access2021 VBA メソッドまたは...
-
Nullの使い方が不正です。
-
Visual BASIC イベント作成しよ...
-
Excelシート上で右クリックがで...
-
JANコードとPOSコードは同じ?
-
【VB6】実行ファイルとした後、...
-
コンボボックス3つを連動させたい
-
Excel VBAについて
-
スキャンコード取得は MapVirtu...
-
C# コードビハインドについて
-
COBOLの文法
-
欠番の抽出について
-
Access DCountでの連番について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
access2021 VBA メソッドまたは...
-
1日に1人がこなせるプログラム...
-
JANコードとPOSコードは同じ?
-
エクセルに見えない文字(JISX0...
-
変数名「cur」について
-
access2003 クエリSQL文に...
-
Excelシート上で右クリックがで...
-
【VB6】実行ファイルとした後、...
-
COBOLの文法
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
C# コードビハインドについて
-
JIPS-Eコードのコード表について
-
Nullの使い方が不正です。
-
PreviewKeyDownイベントが2回...
-
VBAでファイルオープン後にコー...
-
ユーザーフォームに2つのコン...
-
ACCESSユニオンクエリでORDER B...
おすすめ情報