- 締切済み
VBAを使用した検索フォーム
複数項目あるフィールドの年齢から検索をしたくて以下のようにしました。 tempCond = "" '年齢 If Me!年齢開始.Value <> "" Then Nenrei1 = "(Q_メイン.年齢1 between " & Me!年齢開始.Value & " and " & Me!年齢終了.Value & ")" Nenrei2 = "(Q_メイン.年齢2 between " & Me!年齢開始.Value & " and " & Me!年齢終了.Value & ")" tempCond = tempCond & " OR (" & Nenrei1 & " OR " & Nenrei2 & ")" End If If tempCond <> "" Then tempCond = Mid(tempCond, 5) WhereCond = WhereCond & tempOper & "(" & tempCond & ")" End If これで実行をすると、 実行時エラー'2501'; OpenForm アクションの実行はキャンセルされました。 と出てしまいます。 上記の部分を記入するまでは検索ボタンは正常に動いていたのですが。 どこを直せばいいのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Gin_F
- ベストアンサー率63% (286/453)
回答No.1
何が入っているのか不明な変数がありますね。 > tempOper WhereCond に代入されている値を Debug.Print などを使って確認してください。
お礼
回答ありがとうございます。 tempOperは検索方法を「or」か「and」という選べる形式にしてあるため、それが代入されるようになっているものです。
補足
Nenrei1 = "(Q_メイン.年齢1 between " & Me!年齢開始.Value & " and " & Me!年齢終了.Value & ")" を Nenrei1 = "(Q_メイン.年齢1 >= " & Me!年齢開始.Value & " and <= " & Me!年齢終了.Value & ")" としてみましたがだめですね。 wherecondの値は OR(((Q_メイン.年齢1 >= 10 and <= 16) OR (Q_メイン.年齢2 >= 10 and <= 16))) OR (Q_メイン.年齢1 >= 10 and <= 16) OR (Q_メイン.年齢2 >= 10 and <= 16))) と出ました。