- ベストアンサー
チェックボックスをレポートで出力するには・・・
ACCSESS2000を使おうとしています。 チェックボックスを設定しようと思っています。 その際に項目として仮に □りんご、□みかん、□バナナ とします。 「みかん」をチェックしたテーブル項目を印刷画面に表現する際、 「on、off」ではなく、「みかん」とだけ出て、りんご、バナナの文字を出さなくする方法はあるのでしょうか? 初歩的な質問で申し訳ありませんがお教えください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 > 「オプショングループ」で作った場合にはやはり「どれかひとつの項目を選ぶ」事しか > できないのでしょうか。 手元のAccess97で確認した限りでは、リストボックスでの「複数選択」といった感じの 設定はできないようです。 見た目をオプショングループっぽくしたいということでしたら、「オプションボタン(または チェックボックス)」と「四角形」、「ラベル」、それに非表示の「テキストボックス」を 組み合わせてやる、という方法もあります。 (但し・・・テーブルへの記録先が1フィールドにできるのでデータベースのまとまりは よくなるのですが、慣れないとちょっとわかりにくい組み方です。フォームでの入力も、 オプションボタンではなくコンボボックスからの選択とした方が、組む側からすると わかりやすいかも・・・) ┌────通達先────┐ │●本社 ●工場 ○営業所 │ [選択値] ←非表示テキストボックス └───────────┘ 「本社」「工場」「営業所」の各オプションボタンの更新後イベントに、以下のようなコード を設置します; (なお、Nullによるエラーを防ぐ為、それぞれの「既定値」に「0(False)」を設定して下さい) Private Sub 営業所_AfterUpdate() 選択値 = -(本社 * 1 + 工場 * 2 + 営業所 * 4) End Sub Private Sub 本社_AfterUpdate() 選択値 = -(本社 * 1 + 工場 * 2 + 営業所 * 4) End Sub Private Sub 工場_AfterUpdate() 選択値 = -(本社 * 1 + 工場 * 2 + 営業所 * 4) End Sub こうすると、「選択値」テキストボックスには0~7の整数が記録されることになります。 「通達先」テーブルを新設し、この記録値と通達先の関係を記録しておけば、コンボ ボックスの選択肢表示に使用できます。 (各選択項への係数は*1,*2,*4,*8,*16・・・と続けていきます;2のn乗) 「通達先」テーブル; 選択値 並替 対象通達先 0 0 (未選択) 1 1 本社 2 2 工場 3 4 本社+工場 4 3 営業所 5 5 本社+営業所 6 6 工場+営業所 7 7 本社+工場+営業所 ※「並替」フィールドは、以下のようなSQL(クエリ)により、コンボボックスでの 「本社+工場」と「営業所」の並び順を逆転させることを想定したものです; SELECT 通達先.対象通達先, 通達先.選択値 FROM 通達先 ORDER BY 通達先.並替;
その他の回答 (3)
- venzou
- ベストアンサー率71% (311/435)
Yes/No型を文字列に変えたいって事でしょうか? 下記のようなクエリを作れば可能だと思います。 SELECT iif(テーブル名.りんご,"りんご","") AS りんご, iif(テーブル名.みかん,"みかん","") AS みかん, iif(テーブル名.バナナ,"バナナ","") AS バナナ FROM テーブル名; クエリのデザイン画面で、表示 → SQLビュー にして、上記をSQL文を入れてください。
お礼
ご回答ありがとうございます。 簡単に書いていただいたのでわかりやすいです。逆に初歩的過ぎる質問をしてしまったのではないかと内心ドキドキしています。 実際に試してみたいと思います。ありがとうございました。
- DexMachina
- ベストアンサー率73% (1287/1744)
それらのチェックボックスは同時に選択されることはあるのでしょうか。 (りんご、みかん、バナナ全てにチェックが入る、等) もしそういうことがないのでしたら、 ・テーブル上は1フィールドに記録&選択肢記録用のテーブルを新設 (選択肢が少ないなら、データ型は数値型のバイト型あたり) ・フォーム上はオプショングループ&オプションボタン (同時選択不可の場合、ふつうはオプションボタンを使いますが、 チェックボックスでも設定可能) ・レポート上はコンボボックス といった使い分けをするのが、結果的に一番簡単になるのではないかと 思います。 具体的には以下の通りです; 【テーブル】 名簿テーブル; ID 姓 名 組ID 1 すずき あきお 1 2 さとう ただし 2 ・ ・ ・ ・ ・ ・ ・ ・ 組テーブル; 組ID 組名 1 りんご 2 みかん 3 バナナ ※テーブルのデザインビューで、「組ID」をコンボボックスで表示するように設定しておくと、 テーブルを直接開いた場合もデータの確認がしやすく、フォームやレポートでコンボボックス 表示させるときに個別に設定してやる必要がなくなります。 (テーブルのデザインビューの左下にある「ルックアップ」タブで、『表示コントロール』を 「コンボボックス」にしてやると、必要な設定ができるようになります) 【フォーム】 ┌──────組───────┐←オプショングループの中に、 │●りんご ○みかん ○バナナ │ 必要な数だけオプションボタンを設置 └──────────────┘ 設置方法; 1)「名簿テーブル」をレコードソースにした新規フォームをデザインビューで開く 2)フィールドリストを表示 (メニューバーで「表示(V)→フィールドリスト(L)」を選択) 3)プロパティシートを表示 (フォームの詳細領域などをダブルクリック) 4)「フォームデザイン」ツールバーからオプショングループを選択 (まだフォーム上には設置しません) 5)フィールドリストの「組ID」をクリックし、フォームの詳細領域にドラッグ&ドロップ 6)上記ツールバーでオプションボタン(又はチェックボックス)を選択 7)上で作成した「組ID」オプショングループのところまで持っていき、枠内が反転 表示されるところでマウスをクリックして、オプションボタンを設置 8)プロパティシートの「データ」タブで、「オプション値」を設定 (「りんご」に割り当てるなら1、「みかん」なら2、といった具合に; この値が、テーブルの「組ID」フィールドに記録されます) 9)必要な数(回数)だけ、4)~8)を繰り返す 【レポート】 テーブルのデザインビューで、コンボボックス表示の設定をした後であれば、 フィールドリストからドラッグ&ドロップするだけでOKです。
お礼
丁寧な回答をありがとうございます。大変参考になりました。 一番初めのところでも、おっしゃってましたが、「各項目に全部チェックが入る可能性のある項目」と「どれかひとつを選ぶ項目」の両方を設定しようと思っていますが、「オプショングループ」で作った場合にはやはり「どれかひとつの項目を選ぶ」事しかできないのでしょうか。 「同時にチェックする」項目がある場合は何かよいお知恵があれば、この場を借りてお伺いしたいと思います。
- CHRONOS_0
- ベストアンサー率54% (457/838)
この質問じゃ誰も答えられないでしょうね >チェックボックスを設定しようと思っています。 どこに?テーブルにフィールドを設けるのですか? テーブルがどういうもので、それから作ろうとしているレポートがどういうものか を含め、もっと詳しく説明してください
補足
お礼が遅くなり失礼しました。 また、丁寧にご回答くださりありがとうございます。 さっそくやってみようと思います。 また、わからないことがあれば ご助言の願いいたします。