フォーム上での複数条件での抽出ができません

このQ&Aのポイント
  • フォーム上での複数条件での抽出が思うようにできず困っています。
  • 抽出ボタンをクリックしたら入力した年度と月でフィルターをかけたいですが、うまくいきません。
  • 別のプロシージャでは年と月を別々に抽出することができましたが、絞り込みに困っています。
回答を見る
  • ベストアンサー

フォーム上での複数条件での抽出ができません

工事の発注した年度と月をコンボボックスでそれぞれ入力した値で 抽出したいと思いましたが、なかなかうまくいきません。 Private Sub 抽出ボタン_Click() Me.FilterOn = False '抽出ボタンをクリックしたらcbo年度コードの値でフィルターをかける Me.Filter = "年度 = " & Me![cbo年度] And "発注予定 = " & Me![cbo月] 'フィルターを実行します。 Me.FilterOn = True End Sub 別のプロシージャで年と月を別々に抽出することはできたのですが、 「○年のさらに○月の工事」と絞り込むことができずに困っています。 このプロシージャを実行すると、以下のエラー分が表示されます。 ========================= 実行時エラー '13': 型が一致しません。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

Me.Filter = "年度 = " & Me![cbo年度] & "And 発注予定 = " & Me![cbo月] かな?

参考URL:
http://penhagi.com/access/ota2001/9178.htm

関連するQ&A

  • フォーム上にある1つのテキストボックスで複数フィールドの値を抽出する

    フォーム上に配置している非連結のテキストボックスに任意の値を入力して,同じフォーム上に抽出結果を表示させる方法について,1つのフィールドのみを抽出対象にする場合, Private Sub 抽出_Click() 'フィルタを設定 Me.Filter = "担当 ='" & Me!所員抽出 & "'" 'フィルタを実行 Me.FilterOn = True End Sub で可能ですが,抽出したいフィールドが担当フィールドだけでなく,担当2…担当8まである場合,どのように条件をつなげていったら良いでしょうか。 担当…担当8の各フィールドにはデータが入っていたり,いなかったりします。

  • 実行時エラー '3464': 抽出条件でデータ型が

    フォームにフィルタをかけようとすると 実行時エラー '3464': 抽出条件でデータ型が一致しません。 になります。 Private Sub Form_Load() Me.Form.Filter = "フィールド1 =200" Me.Form.FilterOn = True End Sub コードはこれです。 フィールド1はテキスト型です。 何がダメなのでしょう?

  • 年を条件にデータを抽出するには?

    フィールド1 2012/01/01 2012/01/02 2011/01/01 2011/01/02 2010/01/01 2010/01/02 と言うデータがあり、それをもとに表形式でフォームを作りました。 フォームヘッダーにコンボボックス(名前:コンボ3)を作り、 値集合タイプ:値リスト 値集合ソース:"2012";"2011";"2010" にしました。 コンボボックスのAfterUpdateイベントでコンボ3に表示されている値を年を抽出したいのですが vbaでどうやればいいのでしょうか? クエリは作りません。 Private Sub コンボ3_AfterUpdate() Me.Form.Filter = "フィールド1 Between #" & Me.コンボ3.Value & "# And #" & Me.コンボ3.Value & "#" & "'" Me.Form.FilterOn = True End Sub や Private Sub コンボ3_AfterUpdate() Me.Form.Filter = "フィールド1 Between #" & Me.コンボ3.Value & "/01/01" & "# And #" & Me.コンボ3.Value & "/12/31" & "#" & "'" Me.Form.FilterOn = True End Sub にすると 実行時エラー クエリ式 <式> の <メッセージ> (エラー 3075) 入力した式が、メッセージに示されている原因によって無効です。フィールド名と区切り記号を正しく入力していることを確認してから、もう一度実行してください。 となってしまいます。 2010/01/01と2010/01/02を抽出させたいです。 ご回答よろしくお願いします。

  • アクセス フォーム複数条件でのフィルタエラーになる

    アクセスのフォームにたいして Private Sub Form_Load() With Me.Form .Filter = "分類 = '" & "クレジットカード" & "' and " _ & "退会済YesNo = '-1'" .FilterOn = True End With End Sub とすると、 抽出条件でデータ型が一致しません。(エラー 3464) と言うエラーになってしまいますが、 分類フィールドの値がクレジットカードで、なおかつ退会済YesNoフィールドの値が-1(もしくはTrue)を抽出するにはどうすればいいですか? あと、エラーになる原因も教えていただければ幸いです。 ご回答よろしくお願いします。

  • Access 2003 でフォームフィルターがかかりません。

    Access 2003 でフォームフィルターがかかりません。 どなたか助けてください。 アクセス初心者です。 フォームの詳細欄にチェックボックス(フィールド名:伝票チェック)を配置しております。 チェックの入っていないものを表示させたいです。 フォームヘッダーのオプショングループ(フレーム67)に オプションボタン0-オプション値0と オプションボタン2-オプション値2 の2個のオプションボタンを配置してあります。 クリック時のイベントプロシージャに以下のコードを書きました。 Private Sub フレーム67_Click() If Me!フレーム67 = 0 Then Me.Filter = 伝票チェック = 0 Me.FilterOn = True Else Me.Filter = "" Me.FilterOn = True End If End Sub 実行時エラーは出ませんが、データが何も表示されません。 どうすればいいのでしょう??? どなたかお願いします。

  • Accessでの検索フォーム作成

    お世話になります。 Accessを使い始めて半月ぐらいの初心者です 次のような条件の検索フォームの作成を依頼されたのですがうまく出来ません。 (1)Accessのフォームフィルタを使用した検索フォームで、3つのテキストボックス(以下TB)を同一 フォーム上に用意し、抽出を実行するボタンと解除するボタンをTBの隣にそれぞれ用意する (2)あいまいな条件(部分一致)で検索出来るようにする (3)抽出結果も同一フォーム上に表示 (4)任意のTBに入力した値で抽出後、他のTBを利用し 絞り込み検索を実行できるようにしたい 現在は下記のように作成しました。 ●テーブル [管理番号]、[品名品番]、[仕入先名]のフィールドを持つテーブルを用意。 ●フォーム(表形式) 上記テーブルに連結した検索フォームを作成し、抽出する値を入力する TBの名前はそれぞれ下のように付けました。 フィールド名    TB名 ・[管理番号]⇒管理番号検索 ・[品名品番]⇒品名品番検索 ・[仕入先名]⇒仕入先名検索 ・[抽出実行ボタン]のイベント(管理番号で検索時) Private Sub コマンド47_Click() Me.Filter = "管理番号 Like '*" & Me!管理番号検索 & "*'" Me.FilterOn = True End Sub ・[抽出解除ボタン]のイベント(管理番号で検索時) Private Sub コマンド49_Click() Me!管理番号検索 = Null Me.FilterOn = False End Sub 他2つも同様に作成して実行した結果、単体での抽出はうまくいくのですが さらに絞り込もうと他のTBに値を入力して抽出を実行すると先の抽出が解除され 単体でのフィルタがかかって抽出されてしまいます。 どなた様か良い案が御座いましたらご指導ください。 初心者のため、説明不足な点があるかと思いますが 不明な点がございましたらご質問くださいませ。 宜しくお願い致します。

  • アクセスで期間抽出

    お尋ねします アクセスで納品書のデータベースがあります   納品書データFormには 伝票番号、日付、客先名、数量のフィールドのフォームで テキストボックス1:始めの日 テキストボックス2:終了日 コマンドボタン1:期間で抽出 が配置しています テキストボックス1,2に日付、記入後、コマンドボタン1をクリックして 所要期間でフィルターで抽出するのですがうまく行きません コマンドボタン1クリック時のコード Private Sub コマンド1_Click() Me.Filter = "日付= 'Between" & Me![テキスト1] & "And" & Me![テキスト2] & "'" Me.FilterOn = True End Sub のコードで抽出してくれません、不都合をご指摘下さい なお 指定日での抽出は以下で出来ました。 Private Sub コマンド1_Click()  Me.Filter = "日付= '" & Me![テキスト1] & "'" Me.FilterOn = True End Sub エクセルのモジュールは少しかじったのですがアクセスは 始めたばかりでなかなか要領を得ません 宜しくお教え下さい。

  • 複数条件で抽出後結果をフォームに表示する方法

    フォーム上で「客先名」と「納入日」を指定して、その指定したものだけを表示したいと思い、下記のURL参考にさせていただき、自分で必要と思われる箇所を変更してみたのですが、「コンパイルエラー:プロシージャの外では無効です」とでて、うまくいきません。 私の知識不足でどこがどう悪いのかわからないので、どうかお助けください。 参考URL:http://hatenachips.blog34.fc2.com/blog-entry-129.html ※「納入日」はたとえば「2013/05/01~2013/05/20」というふうに範囲指定したいです。 ※作ったテキストボックス名は txt客先名、min年月日、max年月日 で、 抽出したいフィールド名は「客先名」と「納入日」です。 ↓URLを参考に自分なりに書き換えてみたコード Private Sub cmdFilter_Click() Dim strFilter As String, strExp As String, aryOpe As Variant If Not IsDate(Me.min年月日) Then MsgBox "日付ではありません。" Me.min年月日.SetFocus Exit Sub End If If Not IsDate(Me.max年月日) Then MsgBox "日付ではありません。" Me.max年月日.SetFocus Exit Sub End If If Not IsNull(Me.txt客先名) Then strFilter = strFilter & " AND 客先名 Like '*" & Me.txt客先名 & "*'" End If If Not IsNull(Me.min年月日) Then strFilter = strFilter & " AND 納入日 >= #" & Nz(Me.min年月日) & "#" End If If Not IsNull(Me.max年月日) Then strFilter = strFilter & " AND 納入日 <= #" & Nz(Me.max年月日) & "#" End If Me.Filter = Mid(strFilter, 3) If strFilter = "" Then Me.FilterOn = False Else Me.FilterOn = True End If End Sub Private Sub cmdFilterOff_Click() Me.Filter = "" Me.FilterOn = False Me.txt客先名 = Null Me.min年月日 = Null Me.max年月日 = Null End Sub 以上、よろしくおねがいします。

  • アクセス Between  Andの使い方 日付型

    フォームをテーブルに紐づけて コマンドボタンを押下したら、日付にフィルタをかけたいのですが、 0件で抽出されます。 フィールド1 2013/05/19 2013/05/20 2013/05/21 というテーブルがあり、 フォーム上のコマンドボタンのクリックイベントは Private Sub コマンド1_Click() Me.Form.Filter = "フィールド1 Between " & Date & " And " & Date + 1 Me.Form.FilterOn = True End Sub です。 2013/05/19 2013/05/20 が抽出されるべきだと思うのですが、なぜ何も抽出されないのでしょうか? エラーにもなりません。

  • 両方の条件でフィルターをかけたいです

    こんにちは。 今、フォームに別々に条件を指定し、抽出するようにしております。 (1) Private Sub コマンド65_Click() DoCmd.ApplyFilter , "[会場名] like '*" & Me.テキスト63 & "*' " Me.FilterOn = True Exit Sub Err_コマンド65_Click: MsgBox Err.Description End Sub (2) Private Sub コマンド70_Click() f_status = "施工日 >= '" & 開始日 & "'" f_status = f_status & " AND 施工日 <= '" & 終了日 & "'" Me.Filter = f_status Me.FilterOn = True End Sub 今の状態では正常に動くのですが、 条件が、(1)かつ(2)という条件でフィルターをかけなければ ならない、と作成してから気づきました。 いろいろやってみたのですが、 どれもエラーになるばかりで。。。

専門家に質問してみよう