初心者です。よろしくお願い致します。
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
を抽出したいと思っています。
全チェックで全部表示されればいいと思います。
どうぞよろしくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
リレーショナル・データベースの設計の基本形。
メイン・サブフォームの基本形。
以上に忠実にやってみたらどうなるかです。
設問:
ID___設問番号____分野___問題一覧_ID
01_____________1____A_______アメリカの首都は?
01_____________2____B_______アメリカ大陸発見者は?
02_____________1____C_______賛成の反対語は?
03_____________1____A_______英国の首都は?
04_____________1____B_______ペニシリンの発見者は?
05_____________1____C_______反対の反対語は?
分野:整数
<ルックアップ>
コンボボックス
値リスト
1;A;2;B;3;C
列数 2
列幅 0cm;1cm
問題一覧_ID:長整数
テーブル/クエリ
SELECT 問題一覧.ID, 問題一覧.問題文, * FROM 問題一覧;
列数 2
列幅 0cm;3cm
さて、設問テーブルは主テーブルと従テーブルという関係にはなっていません。
ここが、問題をややこしくしています。
設問標題:
ID___作成日_________作成者
01___2008/02/27__鈴木
02___2008/02/27__鈴木
03___2008/02/27__鈴木
04___2008/02/27__鈴木
05___2008/02/27__鈴木
設問明細:
ID___設問番号___分野___問題一覧_ID
01_____________1___A_______アメリカの首都は?
01_____________2___B_______アメリカ大陸発見者は?
02_____________1___C_______賛成の反対語は?
03_____________1___A_______英国の首都は?
04_____________1___B_______ペニシリンの発見者は?
05_____________1___C_______反対の反対語は?
こういう設計ならば、仕入伝票標題と仕入伝票明細という関係に同じ。
よって、あらゆる伝票入力のノウハウが使えます。
現行の設計で、無理やりにこういうテーブル構造にするには、
設問標題
SELECT 設問.ID
FROM 設問
GROUP BY ID;
設問明細
SELECT 設問.ID, 設問.設問番号, 設問.分野, 設問.問題一覧_ID
FROM 設問;
という二つのクエリを作成することです。
次のフォームウイザードで2つのクエリを指定すると次のようなフォームが作成されます。
リンク子フィールド=ID
リンク親フィールド=ID
の手動指示は必要。
=========================================================
ID [ 1]
設問明細
---------------------------------------------------------
ID 設問番号 分野 問題一覧_ID
---------------------------------------------------------
1| 1 A アメリカの首都は?
1| 2 B アメリカ大陸発見者は?
=========================================================
さて、ここまでくれば、サブフォームの分野を選択した場合に選択ボックスが画面に現れると良いことが判ります。
そして、その選択ボックスは分野に該当する問題だけが抽出されている。
そして、その選択がなされるとサブフォームの[問題一覧_ID]が更新される。
これは、仕入伝票で商品区分を指定して商品を絞り込んでいく際の常套手段です。
ここは、ここだけで別の質問にされたがいいです。
なお、関数一発で実現することもできます。
No.3
- 回答日時:
>クエリの抽出条件は9行しか入力できないようで、
「挿入」「行」でいくらでも挿入できます
ただしあの書き方をした場合、10項目もあると
一度保存して再度デザインビューで表示すると
とんでもないものに書き替えらてしまいますから
作った後はSQLビューにしてから保存、その後はデザインビューにしない
というようにしたほうがいいでしょう
No.2
- 回答日時:
Q、いい方法があればお教え頂ければと思います。
A、全く、発想が違うのですが・・・。
問題一覧:
ID___問題文________________________正解__________分野
01___アメリカの首都は?_________ワシントン_______1
02___アメリカ大陸発見者は?___コロンブス_______2
03___賛成の反対語は?_________反対______________3
04___英国の首都は?____________ロンドン__________1
05___ペニシリンの発見者は?__パスツール______2
06___反対の反対語は?_________賛成______________3
設問:
ID___設問番号___問題一覧_ID
1______________1__________________1
1______________2__________________2
2______________1__________________3
3______________1__________________4
4______________1__________________5
5______________1__________________6
設問1の1は、問題一覧の1。
設問1の2は、問題一覧の2。
設問5の1は、問題一覧の6。
設問クエリ:
ID__設問番号__問題文________________________正解__________分野
01___________1___アメリカの首都は?_________ワシントン_______1
01___________2___アメリカ大陸発見者は?___コロンブス_______2
02___________1___賛成の反対語は?_________反対______________3
03___________1___英国の首都は?____________ロンドン__________1
04___________1___ペニシリンの発見者は?__パスツール______2
05___________1___反対の反対語は?_________賛成______________3
****[設問設定入力フォーム]******************************
ID:_________________[0006]
[設問明細]_______________________________________________________________________
01:アメリカの首都は?_____________
02:アメリカ大陸発見者は?_______
03:反対の反対語は?
*****************************************************
実際問題としては、この方が、何を出題しているのかが一目瞭然。
そして、設問の管理も簡単。
こういうやり方もあります。
この回答への補足
おっしゃる通りです。
が、1つの問題で1つの分野とはっきり定義づけられたらいいのですが、1つの問題で複数の分野を指定することがあるのです。
それで、各分野でチェックボックスで指定する方法を取った訳なんです。
よろしくお願い致します。
No.1
- 回答日時:
>分野1の抽出条件の1段目に下記の式を入れました。
>[Forms]![F_kensaku]![ck1]
これじゃチェックが入っていないときには
Falseのレコードを取り出しますよ
チェックが入っているときだけTrueのものを取り出したいのであれば
=True and [Forms]![F_kensaku]![ck1]=True
以下同様です
この回答への補足
動作はうまく動いているのですが、また問題点が出てきました。
クエリの抽出条件は9行しか入力できないようで、分野が10項目以上あるときには何か方法がありますか?
SQLビューにして直接書き込めばいいんでしょうか?
ありがとうございます。
早速試してみました。今のところうまく動いているようです。
実際にはもう少し複雑になるので、実際のデータベースで少し動かしてみたいと思います。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 物理学 フーリエ変換の振幅について 1 2022/09/04 08:56
- 工学 dフリップフロップで二分周器を作成してck (黄色)と出力Qの波形をオシロスコープで確認したのですが 1 2022/11/30 22:19
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- 数学 離散フーリエ逆変換が周波数分割数をNにできる理由について 4 2022/09/18 12:56
- その他(プログラミング・Web制作) このpythonコードの意味教えて下さい! 2 2022/08/26 00:52
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- 数学 M種類の部品からN種類の部品を抽出する効率的なアルゴリズム 2 2022/04/22 16:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSでVBAから選択クエリの抽...
-
クエリ実行結果0件の場合のフ...
-
ACCESS2003のグループ化のエラ...
-
クエリーの結果をフォームに表...
-
ACCESSで、EXCELのような、sumi...
-
AccessでIDを入力したら他の項...
-
AccessのフォームをExcelに出力
-
Accessクエリの抽出条件にフォ...
-
ACCESS フォームで抽出したデー...
-
ACCESS2007 マクロ クエリのパ...
-
VarChar型をINT型に変換するには
-
ACCESSあいまい検索から入力まで
-
ACCESSで、フォームで抽出した...
-
Access 抽出したデーターの詳細...
-
Accessでフォームに自動入力し...
-
エクセルで、抽出したデータだ...
-
前のレコードの値を自動で入れたい
-
Access サブフォームでの選択行...
-
ACCESSのクエリー抽出条件にIIF...
-
access別のテーブルを参照して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSでVBAから選択クエリの抽...
-
AccessでIDを入力したら他の項...
-
ACCESSで、EXCELのような、sumi...
-
クエリ実行結果0件の場合のフ...
-
ACCESS2007 マクロ クエリのパ...
-
Accessクエリの抽出条件にフォ...
-
access クエリでIIF文で抽出条...
-
ACCESSで、フォームで抽出した...
-
サブフォームを利用したクエリ...
-
ACCESS フォームで抽出したデー...
-
ADOレコードセットのコピー
-
ACCESS クエリのデザインビュ...
-
ACCESS2003のグループ化のエラ...
-
VarChar型をINT型に変換するには
-
アクセスのフォームに連番を表...
-
AccessのフォームをExcelに出力
-
クエリーの結果をフォームに表...
-
AccessでログインIDを抽出条件...
-
Accessのパラメータクエリ作成...
-
Access 2段階のクエリの作り方
おすすめ情報