Accessテキストボックスを使用した範囲検索

このQ&Aのポイント
  • Accessのフォームにテキストボックスを二つ作成し、それぞれに金額を入力します。
  • 範囲結果をBetween And演算子で抽出し、ふたつめのボックスには空文字はパスにします。
  • 「Me.キーワードの使用が不正です」というエラーメッセージが表示される問題について、解決策を教えてください。
回答を見る
  • ベストアンサー

Access テキストボックスを使用した範囲検索

タイトルどおりの操作について教えてください。 Access VBAは、ごく簡単な操作が理解できる程度のレベルです。 Accessのフォームにテキストボックスを二つ作成し、 それぞれに金額を入力します。 その範囲結果をBetween And 演算子で抽出し ふたつめのボックスには空文字はパスにしたいと思います。 以下の式を作成しましたが、実行しようとすると、 「Me.キーワードの使用が不正です」と出ます。 複雑な式ではないと思うのですが、何がいけないのでしょうか。 どうか教えてください。 ------------------------------------------------ Sub 検索_Click() Me.Fliter = "[金額] Between [Forms]![F_金額で検索]![金額1] And [Forms]![F_金額で検索]![金額2] Is Null" Me.FilterOn = True End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • yu_tang
  • ベストアンサー率81% (26/32)
回答No.1

たとえば、標準モジュールに書いちゃってる、とかはないですか。 # Me はクラスモジュール内でしか使えませんので。

suzupen
質問者

お礼

早々に回答ありがとうございます。 まさにそのとおりの間違いをしています。 ありがとうございました!

suzupen
質問者

補足

クラスモジュールに戻して実行して動くようになりました。 しかし、テキストボックスにそれぞれ数値を入れてフィルタを 実行しても抽出がされません。 ほかに何か問題があるのでしょうか。

その他の回答 (1)

  • yu_tang
  • ベストアンサー率81% (26/32)
回答No.2

> ほかに何か問題があるのでしょうか。 何をやりたい式なのか、意味がよくわかりませんが。 > Me.Fliter = "[金額] Between [Forms]![F_金額で検索]![金額1] And [Forms]![F_金額で検索]![金額2] Is Null" とりあえずヤマカンで [金額] Between [金額1] And Nz([金額2], 2147483647) とか。

suzupen
質問者

お礼

回答ありがとうございます。 私のスキル不足だと思うので、何が原因かよくわかりませんが 同じ意味の式を埋め込みマクロで作成し、実行したところ 動作しました。 いろいろまた試してみます!

関連するQ&A

  • Access テキストボックスとlikeのあいまい検索

    タイトルどおりの操作について教えてください。 Access VBAは、ごく簡単な操作が理解できる程度のレベルです。 フォームに検索キーワード用の非連結のテキストボックスを作成し、 コマンドボタンで検索を実行したいと思います。 イコールで結んだ場合は検索されるのですが、これをLikeに変えると まったく検索されません。 [Q_書籍名検索]![書名] = [Forms]![F_書籍名で検索]![書籍検索] [Q_書籍名検索]![書名] Like " * " & [Forms]![F_書籍名で検索]![書籍検索] & "*" エラーも表示されないのですが、なにが問題なのか教えてください。 よろしくお願いします。

  • Access2000にての日付検索について

    質問させてください。 フォーム「F応募者一覧」の中にコンボボックスにて” 年1””月1””日”~”年2””月2””日1”を選択し たのちに以下のイベントが組まれているボタンをクリ ックしますと関係ない日まで出てきてしまいます。た とえば2005 2 1 ~ 2005 2 6 にしますと18日とか25日のデータも抽出されてしまいます。年月日 のコンボボックスは値リストにて作成しています。 上手く伝えられていないとは思いますが、よろしく お願い致します。 Year([入社日]) Between [Forms]![F応募者一覧]! [年1] And [Forms]![F応募者一覧]![年2] And Month([入社日]) Between [Forms]![F応募者一覧]! [月1] And [Forms]![F応募者一覧]![月2] And Day([入社日]) Between [Forms]![F応募者一覧]![日] And [Forms]![F応募者一覧]![日1]

  • ACCESS VBA で複数項目検索にテキストボックスとコンボボックス

    ACCESS VBA で複数項目検索にテキストボックスとコンボボックスを使用したい txtPC番号というテキストボックス、 com所属部門というコンボボックス、 txt使用者というテキストボックスの どれかひとつの条件が入力されたときに 該当するフォームのレコードを抽出できるようにしたいのですが、 コンボボックスで選択した場合のみうまく抽出できません。 コードのどの部分に誤りがあるのでしょうか? ご指摘願えませんでしょうか? よろしくお願いいたします。 Private Sub cmd01_Click() Me.FilterOn = False If Me!txtPC番号 <> "" Then Me.Filter = "[PC番号]like '*" & Me!txtPC番号 & "*'" ElseIf Me!com所属部門 <> "" Then DoCmd.Requery "com所属部門" ElseIf Me!txt使用者 <> "" Then Me.Filter = "[使用者]like '*" & Me!txt使用者 & "*'" End If Me.FilterOn = True End Sub

  • 検索結果を非連結のテキストボックスに表示させるには

    accessでシステム開発しています。初心者です。 検索結果を非連結のテキストボックスに表示させる方法を教えてください。 条件(1) フォームのレコードはどのテーブルとも紐づいていない 条件(2) 2つのテーブルから1つの検索ボタンで検索できるようにしたい テーブルA;案件マスタ テーブルB:リソースマスタ ・検索テキストボックス(1つ) ・検索ボタン(1つ) 条件(3) 案件ID、リソースIDはともに数値型です。 検索結果表示テキストボックス(非連結) ・案件IDテキストボックス:案件マスタより検索した案件IDを表示する ・リソースIDテキストボックス:リソースマスタより検索したリソースIDを表示する 下記のように考えていますが ・非連結のテキストボックスに検索結果を表示させる ・1つの検索ボタンで2つのテーブルから検索ができるようにする 方法がわかりません。 どのようなコードを追記したらいいのか教えていただけないでしょうか。 よろしくお願いいたします。 Private Sub btn検索ID_Click() Dim strFilter As String Me![案件マスタ].SetFocus If Me!案件IDテキスト = Me![案件マスタ]![案件ID] Then strFilter = " AND 案件ID= " & Me!案件IDテキスト End If If Me!テキストリソースID = Me![リソースマスタ]![リソースID] Then strFilter = strFilter & " AND リソースID= " & Me!リソースIDテキスト End If ’↓?いらないかも.. 'Forms!ID検索.Filter = Mid(strFilter, 6) Forms!ID検索.FilterOn = True Me.案件IDテキストボックス= Null Me.リソースIDテキストボックス = Null

  • 1つのテキストボックスで全フィールドを検索するには

    1つのテキストボックスで全フィールドを検索するには Access2002使用です。 現在フォームにて、それぞれのフィールド毎に検索用のテキストボックスを用意してる為、 下記のようになっています。 これを、1つのテキストボックスで全てのフィールドを検索できるようにするには、 どこを訂正したらよろしいでしょうか? 宜しくお願い致します。 Option Compare Database Function exeFilter() Dim strFilter As String If Not IsNull(姓検索) Then strFilter = " AND 姓 Like '*" & Me.姓検索 & "*'" End If If Not IsNull(名検索) Then strFilter = strFilter & " AND 名 Like '*" & Me.名検索 & "*'" End If If Not IsNull(姓ふりがな検索) Then strFilter = strFilter & " AND ふりがな(姓) Like '*" & Me.姓ふりがな検索 & "*'" End If If Not IsNull(名ふりがな検索) Then strFilter = strFilter & " AND ふりがな(名) Like '*" & Me.名ふりがな検索 & "*'" End If If Not IsNull(住所1検索) Then strFilter = strFilter & " AND 住所1 Like '*" & Me.住所1検索 & "*'" End If If Not IsNull(住所2検索) Then strFilter = strFilter & " AND 住所2 Like '*" & Me.住所2検索 & "*'" End If If Not IsNull(住所1ふりがな検索) Then strFilter = strFilter & " AND 住所1ふりがな Like '*" & Me.住所1ふりがな検索 & "*'" End If If Not IsNull(住所2ふりがな検索) Then strFilter = strFilter & " AND 住所2ふりがな Like '*" & Me.住所2ふりがな検索 & "*'" End If Me.Filter = Mid(strFilter, 6) Me.FilterOn = True End Function Private Sub Form_AfterUpdate() End Sub

  • 【Access】複数フィールドを対象とする検索

    Access上で「検索ボタン」をクリックすると、 「データ」フォームのフィールド1、フィールド2、フィールド3のいずれかに「検索条件1」の語を含み、かつ、フィールド4、フィールド5、フィールド6のいずれかに「検索条件2」の語を含むレコードを抽出できるようにしたいと思います。 検索条件はテキストボックスに入力するようにしており、テキストボックス名は「検索条件1」、「検索条件2」となっています。 以下のコードでやってみたのですが、「実行時エラー13、型が一致しません」というエラーが出てうまく抽出できません。 Private Sub 検索ボタン_Click() Dim filter1 As String filter1 = "フィールド1 like '*" & Me!検索条件1 & "*' or フィールド2 like '*" & Me!検索条件1 & "*' orフィールド3 like '*" & Me!検索条件1 & "*'" And " フィールド4 like '*" & Me!検索条件2 & "*' or フィールド5 like '*" & Me!検索条件2 & "*' orフィールド6 like '*" & Me!検索条件2 & "*'" DoCmd.OpenForm "データ", acNormal Forms!データ!.filter = filter1 Forms!データ!.FilterOn = True End Sub 「検索条件1,2」のテキストボックスがあるフォーム上の「検索ボタン」をクリックすると、 「データ」フォームが開き、検索をかけるという流れをイメージして作成 しています。 どなたか正しい記述を教えていただけませんでしょうか。 よろしくお願いいたします。

  • 日付型と文字列型、両方にフィルタをするには

    アクセス フォームで日付型(Between and)と文字列型、両方にフィルタをするには? Private Sub cmd_ボタン1_Click() Me.Form.Filter = _ "日付 Between #" & Me.cmb_日付1.Value & "# And #" & Me.cmb_日付2.Value & "#" & _ " and 会社名 like " & "*" & Me.cmb_会社名.Value & "*" Me.Form.FilterOn = True End Sub これのどこが変なのか教えていただけますか? 実行時エラー3075「クエリ式の構文エラー:演算子がありません。」というエラーになります。

  • access2000のVBAで「直前の操作をキャンセル」

    こんにちわ。 いまaccess2000のVBAでフォームの元になるテーブルへの フィルタ操作をプログラムしています。 1つの条件を与えたときは正常にフィルタできるのですが, 下記のように2つの条件を与えると, 「直前の操作はキャンセルされました」という エラーメッセージが表示されてしまいます。 「 Me.Filter = vbNullString ' クリア Me.Filter = "[項目1]='" & Forms![F_フォーム1].[cmbコンボ1] & "'" Me.Filter = Me.Filter & " AND [項目2]='" & Forms![F_フォーム1].[cmbコンボ2] & "'" Me.FilterOn = True 」 何かコーディングが足りないのでしょうか? 教えてください。お願いします。

  • アクセスの複数検索で日付の絞込みの仕方

    アクセスでいま3種類の検索をかけて絞込みをしています。 テキスト型と数値型と日付で検索をかけてるのですが 日付の部分を一致だけではなくいつからいつまでという風にも絞り込みたいといわれたのですが いまいちやり方がわかりません。。。 クエリでしたら簡単なのですがすでにフォームを作成して運用していっていますので 下記にプラスして出来るようにご教授お願い致します。 今現在のコードです。 Private Sub 検索ボタン_Click() Dim L1 As String If Nz(Me.品名検索, "") <> "" Then L1 = L1 & " AND 品名 Like '*" & Me.品名検索 & "*'" End If If Nz(Me.採取日検索, "") <> "" Then L1 = L1 & " AND 採取日 = #" & Me.採取日検索 & "#" End If If Nz(Me.数値検索, "") <> "" Then L1 = L1 & " AND 数値 = " & Me.数値検索 End If If L1 <> "" Then L1 = Mid(L1, 6) Me.Filter = L1 Me.FilterOn = True Else Me.Filter = L1 Me.FilterOn = False End If End Sub 採取日を範囲指定で検索したいです。 範囲指定だけではなくその日だけ検索というのも可能ならばお願いします。 Between andでするというのだけは分かるのですが。。。

  • アクセスのOR検索

    アクセスの初心者です。テキストボックスに入力した語句をテーブルより検索するコードをサンプルコードからまねて作りました。   Me.Filter = "[件名]Like'" & "*" & Me![テキスト28] & "*'"   Me.FilterOn = True さらにテキストボックスを2つほど増やし、3つからOR検索出来るようにしたいんですが、、、(コードの意味もよくわかっていません。) コードを書いていただくとありがたいのですが。 よろしくお願いします。