
フォーム上に別フォームを開くボタンがあるのですが、クリックすると実行時エラーが表示されます。
実行時エラー 3075
クエリ式”コード IN(○○,××)の構文エラー 演算子がありません。
コードを数値型からテキスト型に変更したのが原因だと思います。
エラーが出ない方法を教えていただければ助かります。
よろしくお願いいたします。
Dim rst As Recordset
Dim strWhere As String
Set rst = Me.RecordsetClone
With rst
If .RecordCount = 0 Then
Beep
Exit Sub
End If
.MoveFirst
strWhere = ""
Do Until .EOF
strWhere = strWhere & IIf(Len(strWhere) > 0, ",", "") & !コード
.MoveNext
Loop
.Close
strWhere = "コード IN (" & strWhere & ")"
End With
DoCmd.OpenForm "フォーム", , , strWhere
No.4ベストアンサー
- 回答日時:
補足をよんでいなかったので、In句の中身の使い道
がわかりませんでした。
コード IN(○○,××)
○○,××は、元フォームに表示されているレコードになりますので
ということならば、No3の方の回答の、
strWhere = ",'" & !コード & "'"
を
strWhere = strWhere & ",'" & !コード & "'"
にすればよろしいかと。
No.3
- 回答日時:
> コードを数値型からテキスト型に変更したのが原因だと思います。
ということですから
数値型の場合に
IN (10,20,30)
であったものを
IN ('10','20','30')
あるいは
IN ("10","20","30")
となるように編集しなくてはいけません。
文字列に 「'」 が含まれていることがあり得る場合以外は
前者の方が分かり易いのでお勧めです。
ついでに、カンマ区切りとか、
Where条件の 「AND」 でつなぐ場合のテクニックを。
IIf の判断をしないで
すべて、2番目以降の場合と同様に記述し
連結を終了してから
先頭の余分な文字を MID 関数を使用して取り除きます。
strWhere = ""
Do Until .EOF
strWhere = ",'" & !コード & "'"
.MoveNext
Loop
.Close
strWhere = "コード IN (" & Mid(strWhere,2) & ")"
直書きにつき、間違っていたら御免なさい。
この回答への補足
ご回答ありがとうございました。
この通りに書きましたら、次のフォームが開いてレコードが一行表示されました。
説明不足だったのですが、元フォームには複数のレコードがある帳票フォームで、次のフォームも同じになります。
この方法で、複数の値を渡すことができれば、動作しそうです。
ありがとうございました。
No.1
- 回答日時:
止まった行がDoCmdの行なら、
DoCmd.OpenForm "フォーム", , , strWhere
の前に
debug.print strwhere
とか
msgbox strwhere
などとして、意図しているstrWhereになっているかを確認するとよいと思います。
この回答への補足
ご回答ありがとうございました。
止まった行はDoCmdの行です。
msgbox strwhereとしたところ、エラーメッセージと同じ内容の部分が表示されました。
コード IN(○○,××)
○○,××は、元フォームに表示されているレコードになりますので、これでいいと思います。
ただ、知識がありませんので、この操作がどのような意味か理解できませんでした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESS VBAの実行時エラーなんですが
PowerPoint(パワーポイント)
-
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
構文エラー : 演算子がありません。
その他(データベース)
-
-
4
構文エラー:演算子がありません。 ACCESS SQL
その他(データベース)
-
5
実行時エラー3131 FROM 句の構文エラーです について
Access(アクセス)
-
6
Access 実行時エラー'3075' 対処方法
その他(データベース)
-
7
access2003 クエリSQL文について
その他(プログラミング・Web制作)
-
8
アクセスのfilter、複数条件の記述方法を教えてください。
Access(アクセス)
-
9
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
10
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
11
アクセス VBAについて FROM句の構文エラー
Access(アクセス)
-
12
Access サブフォームでの選択行の取得
その他(データベース)
-
13
レコード登録時に「演算子がありません」構文エラーが発生
その他(プログラミング・Web制作)
-
14
パラメータが少なすぎます。1を指定して下さい。""
Excel(エクセル)
-
15
VBでSQL文のUPDATE構文を使った時のエラーについて
Visual Basic(VBA)
-
16
ACCESS VBA でのエラー解決の根拠がわかりません エラー「イベントプロパティに指定した式・・
Access(アクセス)
-
17
Access Error3061 パラメータが少なすぎます。4を指定してください。
Access(アクセス)
-
18
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
19
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
20
アクセスVBAのMe!と[ ]
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
不明なコマンドです("FROM")。...
-
AccessからOracleへのリンクテ...
-
漢字名のテーブルとカラムのCRE...
-
VBA シートの切り替えができな...
-
LINUXのインストールについて2
-
パソコンにコンポーザーをイン...
-
NT4.0にてWebサーバを立ち上げたい
-
ScreenCopy のエラー
-
Excel2010でふりがなが漢字にな...
-
エクセルで、sheet2のc1又はd1...
-
VBAについて教えて頂けませんか。
-
できるLINUXサーバーRedHatLinu...
-
VCDを見るには
-
デジカメソフトがインストール...
-
変数名での条件分岐は可能でし...
-
centos5.2にoracle10gインスト...
-
オートメーションエラー
-
エクセルVBAでのバージョン...
-
poppassdについて
-
シート保護でオートフィルタ機...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
不明なコマンドです("FROM")。...
-
Access2010 「演算子がありませ...
-
AccessからOracleへのリンクテ...
-
Access2007 DoCmd.ApplyFilter...
-
動的SQL (その3)
-
漢字名のテーブルとカラムのCRE...
-
スナップショット取得について...
-
【ExcelVBA】sheet作成時にマク...
-
オペランドが足りませんとコメ...
-
エクセルの文字間スペースを入...
-
VBA シートの切り替えができな...
-
mfc42.dllファイルってなんです...
-
Excel2010でふりがなが漢字にな...
-
エクセル/マクロ Exit Subが実...
-
InstallShieldWizardのエラー
-
AUTOCAD 2010でdwlファイルの場...
-
エクセル シート内のハイパー...
-
マクロ実行ボタンがコピー出来ない
-
VBAでシートコピー後、シート名...
-
イース6のセーブデータ移行
おすすめ情報