Accessで複数選択可能なチェックボックスを作成してデータを抽出する方法

このQ&Aのポイント
  • 超初心者にもわかりやすいAccessで複数選択可能なチェックボックスを作成する方法を解説します。
  • 顧客テーブルに趣味選択フィールドを追加し、T-趣味テーブルとリレーションシップを構築します。
  • テキストデータからチェックボックスを作成し、複数の趣味を選択して顧客テーブルのフィールドにデータを入力することが可能です。
回答を見る
  • ベストアンサー

access チェックボックスを複数選択

超初心者です。よろしくお願いします。VBAの知識もほとんどありません。 個人情報の趣味の選択をチェックする項目を作る前提で話します。 顧客テーブルの中に(氏名、住所、電話、趣味選択)があるとして、趣味選択と以下のT-趣味とはリレーションシップでつながれているとします。 テーブル:T-趣味 趣味ID  趣味     データ型:テキスト S-1    音楽 S-2    スポーツ S-3    読書 S-4    アウトドア S-5    旅行 としたとき、テーブルからテキストデータ(音楽、スポーツ、…)を抽出してチェックボックスを作ることは可能でしょうか。 またそれを複数選択して顧客テーブルの趣味選択のフィールドにデータ(ex:読書、旅行)を入力することは可能でしょうか。 よろしくお願いします。

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

  • ベストアンサー
回答No.1

Accessのバージョンはいくつでしょうか。 2007以降であれば、新しくつつかされた 複数値フィールド を使えば簡単に実現できます。 詳細を下記を参照してください。 複数値を持つフィールドとは http://www.happy2-island.com/access/gogo03/capter30200.shtml クエリでの複数値を持つフィールドの使用 - Access - Office.com http://office.microsoft.com/ja-jp/access-help/HA010149297.aspx 2003以前であるなら、 バージョンと、フォームは単票フォームなのか帳票フォームなのかを教えてください。

jp-green
質問者

お礼

お返事ありがとうございました。おかげさまで解決しました。上記の参考アドレスのHPが大変参考になりました。ずっと考えていたので本当に助かりました。ありがとうございます。 ちなみに、バージョンは2010で、単票フォームです。

関連するQ&A

  • Accessのチェックボックスの使い方について。

    初歩的な質問ですみません。 例えば、「趣味」というフィールドがあります。それをフォームでチェックボックス機能をもたせて、釣り、散歩、読書・・などのチェックボックスを作成して複数選択可能にしたいのですが、チェックボックスを作成しても一つしか選択できません。複数選択可能なチェックボックスを作るには、チェックボックスの数だけフィールドを作成しないといけないのでしょうか・・・。 なにか根本的に間違ってたら申し訳ないです。 どなたかアドバイスお願い致します。

  • 数値→チェックボックスの選択

    access vba にてプログラムを作成中です。 データベースはoracleですが、oracleテーブルから0と1の値をselectしてaccess form にチェックボックスの選択ありと選択なしと言う形で表示したいです。 oracleテーブルより0と1を取得し、access form のテキストボックスに0と1を表示する事は出来るのですが、これをチェックボックスの「レ(ペケ?)」のありとなしと言う形で表示するにはどうしたらいいでしょうか?

  • 【Access】チェックボックスでの抽出

    初心者です。よろしくお願い致します。 MS Access2003で問題集を作成しています。 テーブル:T_mondai ・ID 数値 ・問題文 テキスト ・正解 テキスト ・分野1 チェック ・分野2 チェック ・分野3 チェック ※分野1~4のチェックは複数選択可能です。 例えば次のようなデータが入っているとします。(IDとチェックボックスのみ例示します) ID、分野1、分野2、分野3の順です A ○ ○ × B ○ × × C × × ○ D × ○ × E ○ × × フォーム:F_kensaku ・ck1 チェックボックス ・ck2 チェックボックス ・ck3 チェックボックス ・bt1 プッシュボタン(抽出の実行) ※ck1~ck3は複数選択可能です。 ※ck1~ck3の規定値は「False」にしました。 フォーム:F_kensakuでチェックした条件でテーブル問題から抽出するクエリを作ろうと思っています。 それで、 クエリ:Q_sentaku を選択クエリで作りました。 分野1の抽出条件の1段目に下記の式を入れました。 [Forms]![F_kensaku]![ck1] 以下、 分野2:[Forms]![F_kensaku]![ck2](抽出条件の2段目) 分野3:[Forms]![F_kensaku]![ck3](抽出条件の3段目) に入れました。(OR条件です。) 実行すると、チェックが2つ、3つの時はきちんと抽出されるのですが、チェックが1つの場合、全データが選択されてしまいます。 何が良くなかったのでしょうか。 いい方法があればお教え頂ければと思います。 ちなみに、 F_kensakuで CK1のみ:ABE CK2のみ:AD CK3のみ:C CK1とCK2:ABDE CK1とCK3:ABCE CK2とCK3:ACD を抽出したいと思っています。 全チェックで全部表示されればいいと思います。 どうぞよろしくお願い致します。

  • チェックボックスからの複数検索条件での抽出

    phpとpsqlを使っています。 配列で受け渡されたチェックボックスで複数選択された値$param[]を、別テーブル(t_sample)のフィールド(data)で保存されているカンマ区切りのデータと参照して$paramのデータが1つでもあれば、そのテーブルの行を抽出したいのですが…。 $param[]の数によって、SQL文が変わるので、悩んでいます。 どなたか解決の糸口をご指南ください。

    • 締切済み
    • PHP
  • ACCESSの重複チェックについて

    顧客データをACCESS2003にて作成しています。 フォームにてVBAを用いて重複チェックをしているのですが、件数が多いせいかチェックに時間が掛かっております。(入力済件数は10万は超えております。) テーブル(T_顧客管理)よりチェック出来るようにしており、チェックのフィールドは「住所」にしております。 Private Sub 住所_BeforeUpdate(Cancel As Integer) If DCount("住所", "T_顧客管理", _ "住所='" & Me!住所 & "'") > 0 Then Beep MsgBox "既存のデータと同じ住所が入力されました! " & _ "別の値を入力してください。", _ vbOKOnly + vbExclamation, "重複エラー" Cancel = True Me.Undo End If End Sub 上記の式を入れておりますが、別の方法(式)にて上記と同じ内容にてチェック出来る式があれば教えていただきたいと思いますので、宜しくお願い致します。

  • Access リストボックス複数選択を抽出条件に

    Access リストボックスで複数選択した値をクエリの抽出条件にしたいです。 ※PC環境:Win7 Access2007 Excel2007 リストボックスで複数選択した値を取得する事はできるのですが、 クエリ実行をすると結果が0件になってしまいます。 他の方のQAなどを参考に以下を作成しましたが、ほしい結果が得られず困っています。 おわかりになる方、ご教示いただけますようお願い致します。 <動作概要> 「画面」の「リストボックス」で複数選択し、 [実行]ボタンを押して、「リストボックス」で選択した値を、「テキストボックス」にセットし、 クエリの抽出条件に、in(テキストボックス)をセットし、テーブルから合致するデータを抽出したい <リストボックス> ※年区分テーブル参照 区分,区分名 1,1年 2,2~3年 3,4~5年 「2,2~3年」「3,4~5年」を選択 ※「区分」は数値型 <VBA> Private Sub 実行_Click()  Dim i As Variant  Me.テキストボックス = Null  For Each i In Me.リストボックス.ItemsSelected Me.テキストボックス = Me.テキストボックス & Me.リストボックス.Column(0, i) & "," Next If Me.テキストボックス <> "" Then  Me.テキストボックス = Left(Me.テキストボックス, Len(Me.テキストボックス) - 1) End If   'ここで画面を確認すると「テキストボックス」には、「2,3」 がセットされている DoCmd.OpenQuery "クエリ"   'テーブルには抽出条件に該当するデータがあるが、クエリ実行結果は0件 End Sub <クエリ SQL> SELECT テーブル FROM テーブル WHERE (((テーブル.区分) in([Forms]![画面]![テキストボックス]))); ※「テーブル.区分」は、数値型 どうぞよろしくお願い致します。

  • Accessのクエリ作成について

    クエリを作成する際の、テーブルの設定の仕方がよくわかりません。 たとえば、「顧客リスト」テーブルと「販売履歴」テーブルに、それぞれ「顧客ID」フィールドがあり、「顧客ID」フィールドがリレーションシップで設定されているとします。 新たに、選択クエリを作成し、そのクエリに、「顧客ID」フィールドを設定するときに、どちらのテーブルの「顧客ID」フィールドを設定するかがわかりません。 ちなみに顧客IDフィールドには、リレーションシップを設定していて、1対多の設定をしています。 「顧客リスト」テーブルの「顧客ID」フィールドが、「1」の側で、 「販売履歴」テーブルの「顧客ID」フィールドが「多」の側です。 どちらのテーブルを使用しても結果は同じなのですが、 選択クエリを作成するときに、上記のように、同じフィールドを持テーブルが2つありリレーションシップを 設定している場合は、どちらのテーブルを使わないといけないというような決まりはあるのでしょうか? どちらを使用しても構わないのでしょうか。 特に、決まりがない場合は、一般的には、どのように設定されているのでしょうか?

  • Accessのクエリ作成について

    クエリを作成する際の、テーブルの設定の仕方がよくわかりません。 たとえば、「顧客リスト」テーブルと「販売履歴」テーブルに、それぞれ「顧客ID」フィールドがあり、「顧客ID」フィールドがリレーションシップで設定されているとします。 新たに、選択クエリを作成し、そのクエリに、「顧客ID」フィールドを設定するときに、どちらのテーブルの「顧客ID」フィールドを設定するかがわかりません。 ちなみに顧客IDフィールドには、リレーションシップを設定していて、1対多の設定をしています。 「顧客リスト」テーブルの「顧客ID」フィールドが、「1」の側で、 「販売履歴」テーブルの「顧客ID」フィールドが「多」の側です。 どちらのテーブルを使用しても結果は同じなのですが、 選択クエリを作成するときに、上記のように、同じフィールドを持テーブルが2つありリレーションシップを 設定している場合は、どちらのテーブルを使わないといけないというような決まりはあるのでしょうか? どちらを使用しても構わないのでしょうか。 特に、決まりがない場合は、一般的には、どのように設定されているのでしょうか?

  • アクセスVBA テキストボックス入力値からの参照

    マイクロソフトアクセス初心者です。 現在、アクセスでデータベースを作成しています。 2つのフォーム(フォーム(1)、フォーム(2))、2つのテーブル(入力情報、マスタ)、2つのテーブルをもとにした1つのレポートを作成しています。 『フォーム(1)』のテキストボックスAに入力された値を、Dlookup関数で『フォーム(2)』のテキストボックスBに数値を参照しています。 『フォーム(2)』のテキストボックスに表示された値を、『フォーム(2)』に設置されたコマンドボタンをクリックすると、VBAで『テーブル入力情報』のフィールドAに入力されるようにしています。フィールドAについてのマスタとなるテーブルが『テーブルマスタ』です。 リレーションシップを設定せず、ただ単に値を入力することは出来るのですが、レポートを作成するにあたって、『テーブル入力情報』と『テーブルマスタ』のフィールドAに1(テーブルマスタ)対多(テーブル入力情報)のリレーションシップを設定したいと思っています。 リレーションシップを設定し、テキストボックスBに表示された数値を『テーブル入力情報』に入力する際、『テーブルマスタ』から該当するデータを選択して『テーブル入力情報』に入力されるようにしたいと思うのですが、現状では、リレーションシップを設定すると、入力値が真っ白になってしまい、レポートにも入力したデータが反映されません。 ちなみに、入力する際はフィールドA=Me.テキストボックスBのようにしています。 何か良い解決策がありましたら、是非教えていただけませんでしょうか? 分かり難い文章かと思いますが、どうぞ宜しくお願い申し上げます。

  • 選択クエリでの複数抽出条件の記述について

    フォーム上に「テキストボックス」、「コンボボックス」、「チェックボックス」の項目があって、それぞれの条件に合致した、データを抽出する選択クエリを書いてるのですが、うまく抽出してくれません。 「テキストボックス」、「コンボボックス」には、[Forms]![テーブル名]![入力するボックスの名前] or 、[Forms]![テーブル名]![入力するボックスの名前] is nullと記述しています。 「チェックボックス」には、、[Forms]![テーブル名]![チェックボックスの名前] = True or [Forms]![テーブル名]![チェックボックスの名前] = Falseと記述しています。 しかしながら、任意のコンボボックスからテキストを選択し、チェックボックスにレのついたデータを抽出したくても正しいデータを表示してくれません。 どなたか、クエリに詳しい方よろしくお願いいたします。

専門家に質問してみよう