- 締切済み
クエリ式'(品名 In(A102))'の構文エラー
実行時エラー'3075': クエリ式'(品名 In(A102))'の構文エラー:演算子がありません。 とでます。どこがダメなのか分かりませんので教えて下さい。 アクセスは初心者ですので分かりやすくお願いします。 チェックを入れた品名だけをレポートに出すようにしたくて 調べて下記のようにしたのですがエラーが出ます。 Private Sub コマンド_Click() If Me.チェック Then Me.品名リスト = Replace(Me.品名リスト & ",", "," & Me.品名 & ",", ",") Me.品名リスト = Left(Me.品名リスト, Len(品名リスト) - 1) Else Me.品名リスト = Me.品名リスト & "," & Me.品名 End If End Sub Private Sub 実行_Click() Dim strFilter As String If Me.品名リスト <> "" Then strFilter = "品名 In(" & Mid(Me.品名リスト, 2) & ")" DoCmd.OpenReport "Rカタログ", acViewPreview, , strFilter Else MsgBox "選択されたデータはありません。" End If End Sub
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- bin-chan
- ベストアンサー率33% (1403/4213)
inの構文がおかしいように思います。 品名 in ( ’品名1’,’品名2’, ’品名3’ ) のような文字列を作っておかないといけないのに strFilter に代入される値は 品名 in ( 品名1,品名2, 品名3 ) のような。 strFilter = "品名 In(" & Mid(Me.品名リスト, 2) & ")" の行でF9キー押してブレーク行を設定。 実行すると止まるから値を確認してみて下さい。 その後はF8キーで1行ずつ進めるなり、F5キーで一気に進めるなり。
- maiko0318
- ベストアンサー率21% (1483/6969)
実行しようとした中身が見たかったのですが、 無理っぽいですね。すいませんでした。
補足
上手く説明が出来ればいいのですが。。。 こちらこそすいません。
- maiko0318
- ベストアンサー率21% (1483/6969)
Private Sub 実行_Click() Dim strFilter As String If Me.品名リスト <> "" Then strFilter = "品名 In(" & Mid(Me.品名リスト, 2) & ")" MsgBox strFilter <==追加 DoCmd.OpenReport "Rカタログ", acViewPreview, , strFilter Else MsgBox "選択されたデータはありません。" End If End Sub 何が表示されるでしょうか?
補足
追加して実行をクリックしたときに出るメッセージの事でよろしかったでしょうか? 実行をクリックすると イベント プロパティに指定した式クリック時でエラーが発生しました:名前が適切ではありません:実行_Click *マクロ名、ユーザー定義関数名、[イベント プロシージャ]以外の式が指定されています。 *関数、イベント、マクロの評価でエラーが発生しました。 とでます。
お礼
ご指摘頂いた様にやはり品名の部分がダメだったようです。 "品名 In(" & Mid(Replace(Me.品名リスト, ",", "','"), 3) & "')" に変更したら出来ました。 ありがとうございました。
補足
値を確認とはどのようにしたらいいのでしょうか? F8を押して確認してみた所 DoCmd.OpenReport "Rカタログ", acViewPreview, , strFilter の行でF8を押すと同じエラーが出るのですがその行がおかしいという事でしょうか?