• 締切済み

Access VBA チェックボックスで抽出、表示

初めまして。 いつもみなさんの質問と回答を見て参考にさせてもらってます。 わからないところがあるので質問させてください。 Windows7、Access(2007-2010)です。 チェックボックスで抽出をかけて、その結果をサブフォームに表示したいのですが、 どうしてもうまく表示されません。 メニューというテーブルに、 メニュー番号|メニュー名|ピーマン|ニンジン|タマネギ|ハクサイ|ジャガイモ| という項目を作りました。 ピーマンから右は「Yes/No型」のチェックボックスにしていて、 そのメニューにニンジンが入っていたらニンジンにチェック、 そのメニューにニンジンとジャガイモが入っていたらニンジンとジャガイモにチェックしてます。 たとえば「肉じゃが」の場合だと M001|肉じゃが| |(チェックマーク)|(チェックマーク)| |(チェックマーク)| といった具合です。 検索フォームにチェックボックスを5つ用意し、 「検索」というボタンを押したらその野菜が入っているメニューを抽出して サブフォームに表示できるようにしたいです。 チェックボックスの名前は ピーマン ch0 ニンジン ch1 タマネギ ch2 ハクサイ ch3 ジャガイモ ch4 としています。 ______ Option Compare Database Private Sub 検索btn_Click() Dim sqlcode As String Dim aryFldName(4) As String Dim i As Integer aryFldName(0) = "ピーマン" aryFldName(1) = "ニンジン" aryFldName(2) = "タマネギ" aryFldName(3) = "ハクサイ" aryFldName(4) = "ジャガイモ" For i = 0 To 4 If Me("ch" & i) Then End If Next End Sub _______ たくさん調べていろいろ試したのですが、 どこがいけないのかがよくわかりません。 どうすればサブフォームに結果が表示されるのか、 どうすれば結果の抽出ができるのか、 もしわかる方がいらっしゃいましたら教えてください。 どうぞよろしくお願いします。

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

考え方は ・サブフォームのクエリを先に作る。 ・その上で、検索条件を「パラメータ」で渡す。 具体的には 1)全件検索するクエリを最初に作成 2)材料の列毎に検索条件を設定。  ピーマン [forms]![メインフォーム].[ch0]  ニンジン [forms]![メインフォーム].[ch1]  タマネギ [forms]![メインフォーム].[ch2]  ハクサイ [forms]![メインフォーム].[ch3]  ジャガイモ [forms]![メインフォーム].[ch4] 3)これを元にサブフォームを作成する。

pikapika_
質問者

お礼

bin-chan様、早速のご回答ありがとうございます! 丁寧に書いてくださったのですが、 すみません; 初心者なもので、パラメータで渡す方法がわかりません どのようにしたらよいですか? 材料の列毎にというのはAnd条件とすれば よいのでしょうか? 質問ばかりですみません

関連するQ&A

  • Accessでチェックボックスで抽出するには?

    Accessのフォーム検索でチェックボックスを使用して複数のレコードを抽出するにはどうすればよいでしょうか? Section1・2・3があると仮定します。 そこで、1をチェックすれば、そのサブフォームにSection1がOnになっている該当するレコードが出てくるようにしたいです。1・2をチェックすれば二点に絞り込み。 ちなみに、Section項目はYes/no形式と考えておりますが、適切な検索できるフォームの作り方を教えてください。

  • VBA チェックボックスをチェックした名前のみ抽出

    数百名のリストからチェックした名前のみ抽出したいと思いまして。 1.シート1のA、C、E…奇数列にフォームのチェックボックスを配置 2.B、D、F…偶数列に名前を並べる 3.チェックボックスでクリックし、チェックマークが出る 4.マクロでSheet2のA列から抽出された名前を並べる 宜しくお願いします。

  • VBA チェックボックスをチェックした項目のみ抽出

    1.シート1のA列にフォームのチェックボックスを配置 2.B列に名前を並べる 3.チェックボックスでクリックし、チェックマークが出る 4.マクロでシート2のA列から抽出された名前を並べる 以上のことをしたいと思い、検索しましたところ、似たようなものが見つかりました。 https://okwave.jp/qa/q5065347.html ただ、このVBAは抽出先がG列です。抽出先はシート2のA列にしたいのです。 .Cells(i, "G").Value = cb.TopLeftCell.Offset(, 1).Value これをどうしたら良いでしょうか? 宜しくお願いします。

  • 白菜で洋風な料理(ハンバーグの付け合せ)

    今夜はハンバーグにする予定です。がそれ以外のおかずが思いつきません。 お願いします。 ・白菜 ・にんじん ・ねぎ ・大根 ・えのきだけ ・たまねぎ ・じゃがいも ・おくら ・ピーマン ・春菊 ・にんにく ・しょうが 以上が材料です。 白菜がたくさんあるので使いたいのですが、洋風には思いつきません。 お願いいたします!

  • クエリで出来た表にチェックボックスを追加する

    access2000です。 クエリで抽出した表にチェックボックスを追加したいです。 この表はサブフォームで使っています。 で、このサブフォームにチェックボックスをつけて選択した、選択しないを入力できるようにしたいです。 どうすればいいのでしょうか? 式ビルドのように作れるのでしょうか? お願い致します。

  • 野菜、食べてますか。

    一週間で一番多く食べる野菜はどれですか?  1・もやし  2・キャベツ  3・大根  4・玉葱  5・長ネギ  6・白菜  7・人参  8・なす  9・ほうれん草 10・ジャガイモ 11・さつまいも 12・ピーマン 13・里芋 14・ポテトチップ? 15・フライドポテト? 16・その他 宜しくおねがいします。

  • Excel VBA チェックボックスの判断

    下記のようなマクロでチェックボックスを作成したのですが、その作成したチェックボックスをクリックしたときに、ある処理を実行させるようにするにはどうすればいいのでしょうか? よろしくお願いします。 Dim Max as Long Dim Cell as Range Dim Check as CheckBox ・ ・ ・ For i = 0 To Max   With Cell.Offset(i)   Set Check = ActiveSheet.CheckBoxes.Add_     (Left:=.Left,Top:=.Top, Width:=.Width, Height:=.Height)   End With   With Check   .LinkedCell = Cell.Address   .Caption = ""   .Value = False   End With Next

  • Access VBA 日付で抽出できない?

    次の質問にお答えいただけませんか。 フォームで抽出条件を入力しテーブルから抽出をするとき Dim db As DAO.Database Dim rs As DAO.Recordset Dim mySQL As String Set db = CurrentDb() mySQL = "SELECT * FROM T_明細 " _ & "WHERE 顧客ID = " & CStr(Me!txtKey) & ";" Set rs = db.OpenRecordset(mySQL, dbOpenDynaset) 上記のような記述をしました。 テーブル名:T_明細   フィールド:顧客ID  日付 金額  フォームの抽出条件入力テキストボックス:txtKey このとき顧客IDでの抽出は問題なく出来ましたが "WHERE 顧客ID = を "WHERE 日付 = に変更して日付で抽出をしたいのですがうまくいきません。 テーブルの日付フィールドは 書式をgee-mm-dd 定型入力を>L99\-99\-99;0;# で書き込みました。 フォームのtxtKeyテキストボックスのプロパティも書式をgee-mm-dd 定型入力を>L99\-99\-99;0;#に設定してあります。 このようなときは mySQL = "SELECT * FROM T_明細 " _ & "WHERE 日付 = " & CStr(Me!txtKey) & ";" の、記述を何か変更しないといけないような気もしますが 対処の方法を教えていただけませんか。

  • アクセスのサブフォームの値のチェック

    Accessのサブファームにある、コンボボックスの値をチェックしたいので、下記のようにしてみました。 Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acSubform Then msgbox Forms!メインフォーム名!サブフォームコントロール名.Form!コントロール名 End If Next すると、サブフォームの現在選択しているコンボボックスの値しか表示されません。 現在表示されているサブフォームのコンボボックスの値すべてを表示させるにはどうすればいいのでしょうか。よろしくお願います。

  • 肉じゃがの食材・・・

    肉じゃがの食材は何ですか? わたしんち 豚肉 じゃがいも にんじん たまねぎ