Step by step

Access 2000 質問と回答


自習学習へ       パート1    パート2    パート3    パート4    パート5


パート2(Lesson4〜6)

1. コンポボックスで[航空便]フィールドの選択肢が、横一列に No;Yes と表示される。
2. 1対多のリレーションシップなのに、結合線上に「 1 ∞ 」が表示されない。
3. 「コントロール」とは、何なのですか?
4. A項のコンポボックスの一覧に[従業員ID]が出てきませんが?



 1. コンポボックスを設定した[航空便]フィールドの選択肢が、横一列に No;Yes と表示される。
ペ ー ジ  P.80 〜 81 4.3.1 の D 〜 G
質  問  [航空便]フィールドのプロパティの設定で、[値集合ソース]に「No;Yes」を入力し、データシートビューに切り替える。その時[航空便]フィールドをクリックした場合に出てくる ▼ をクリックすると、縦方向に No と Yes が表示されるのではなく、 No;Yes と表示されてしまいます。
回  答  ホームページのコメント集の該当ページの個所にも書いてあるように、「;」は半角でなくてはなりません。

というのは「;」はコンボボックスの値集合の区切りを示す Key Wordだからです。システムの Key Word は、いわば世界共通語です。決して、日本のローカルなルールではありません。パソコンのシステムは英語(圏)を中心に発展してきましたので、そのルールは英語ベースになっています。

 ところで「全角文字」は、世界共通の文字ではなく、日本のローカルな文字だということを知っておきましょう。世界共通の文字は、数字やアルファベットや記号の「半角」です。

 これからも、「全角」と「半角」の違いでエラーの発生するケースがたくさんあると思います。まずは、そのあたりをチェックする習慣をつけてください。

頁先頭へ戻る

 2. 1対多のリレーションシップなのに、結合線上に「 1 ∞ 」が表示されない。
ペ ー ジ  P.87〜89 4.4.5
質  問  [配送料]テーブルと[注文]テーブルの関係は、一対多のリレーションシップだと思うのですが、P.87 の B項の図にあるような結合線上の「 1 ∞ 」の表示がされません。これで良いのですか?  
回  答 それで構いません。「1対多」のリレーションがあれば、いつでも「1対∞」と表示される訳ではありません。「1対∞」の表示は、参照整合性の設定を行ったときにだけ表示されます。ここでは参照整合性の設定が行われていませんので、そのような表示がないのです。

P.87 の B項の図では表示されていますが、これは P.87 の A項で参照整合性を設定しているからです。

頁先頭へ戻る

 3. 「コントロール」とは、何なのですか?
ペ ー ジ  P.94〜95 辺り 5.1
質  問  「コントロール」の意味が、よく分かりません。
回  答  Access のオンラインヘルプからの引用ですが・・・

 コントロール : 定義と動作
 フォームとレポートのすべての情報は、コントロールに格納されます。また、データ アクセス ページの情報も、フォームやレポートと同様に、コントロールに格納されます。ただし、データ アクセス ページには、直接情報を記述することもできます。

 フォーム、レポート、およびデータ アクセス ページに配置されたコントロールには、なんらかの処理を行うコントロールと、単に外見を整えるためのコントロールがあります。例えば、データ アクセス ページのテキスト ボックスにデータを表示したり、フォームのコマンド ボタンから他のフォームやレポートを表示したり、直線や四角形でコントロールをグループ化することができます。
(以下、省略)

今の質問に関連して言えば、フォーム「注文」には、
・ 注文日付や支払人、受取人などの『いわゆるフィールド』がありますね。これらはコントロールの一種です。これらのフィールドは、フォームのもとになるテーブル(レコードソースといいます)のフィールドと連動しています。
・ 左下には『サブフォーム』が組み込まれています。このサブフォームもコントロールの一種です。これは、フィールドとは違って、フォームのもとになるテーブルではなく、それとは別のテーブルを表示するための「大きな枠」です。つまり、フィールドよりも大きな概念です。
・ この他にも、フォームにはいろいろなコントロールを配置することがあります。『ボタン』や『画像イメージ』などもそういうコントロールのひとつです。

 テキスト P.94 下から8行目にあるように、「フォームはすべてコントロールで構成されています。」ということです。乱暴に言えば、フォーム上の「部品」はすべてコントロールです。

その種類として、
・ データを入力するコントロール:すなわちフィールド
・ フィールド名を表示するコントロール:すなわちラベル
・ 他のフォームを開いたりするためのコントロール:すなわちボタン
・ 見栄えをよくするためのコントロール:すなわち罫線や画像など
等があるということです。

頁先頭へ戻る

 4. A項のコンポボックスの一覧に[従業員ID]が出てきませんが?
ペ ー ジ  P.134 パート2復習ステージのステップ4
質  問  A項の設定で、「[従業員ID]テキストボックスを、[従業員]テーブルの[従業員ID]、[姓]、[名]フィールドを参照するコンボボックスに変更する」という指示があります。指示どおりに設定すると[従業員ID]ボックスは、コンボボックスとなり、▼をクリックすると姓と名の一覧が出てきますが、[従業員ID]の表示はありません。コンボボックスウィザードで、[従業員ID]、[姓]、[名]の3つを選択したのですから、この3つが出てくるのかなぁーと思ったのですが。これで良いのでしょうか?

 B項の[詰合せID]テキストボックスの変更も同じようになっています。[詰合せ名]だけが出てきて、[詰合せID]がありません。

 ただレッスン5の P.98〜101 の実習においては、[注文]フォームの[顧客ID]ボックスが[顧客ID]、[姓]、[名]の3つが入ったコンボボックスになっています。やはりどこか設定がおかしいのでしょうか?
回  答  コンボボックスの意味を考えてみましょう。ここで眺めるのは、姓、名では不十分でしょうか?そもそも従業員ID は、パソコン用のコードで、普段そんなもので従業員さんを呼んだり、顔を思い出したりするでしょうか?見えるものとしては、姓と名で十分なのです。

 しかし、コンピュータ内部ではちゃんと「従業員ID」が利用されているのです。テーブル「プロモーション」を開いてみてください。ここに「従業員ID」フィールドがありますが、そこには何が記録されていますか? 数値ですよね。これがさっき見えていなかった「従業員ID」です。

 つまり、テーブルという「データの格納場所」には、ちゃんと ID が記録されているのですが、数字の 1 から、○○さんの名前や顔を思い出すことはできませんね。それで、フォームのコンボボックスでは「姓、名」を表示しているのです。

 コンボボックスは、そのような役割を自動的に果たしているのです。

 B項の[詰合せID]ボックスで[詰合せID]が表示されないのも、同様に、ID を表示して欲しい理由がないからです。

 レッスン5の P.98〜101 の実習については、こちらはこれで正当です。

 おっしゃる通り、2つのコンボボックスで違いがあります。この理由を説明するのは、やさしくありません。

 あえて、それを行えば・・・

・ プロモーションフォームに組み込んだ「従業員」や「詰合せ」のコンボボックスで利用しているのは、「テーブル」です。それぞれのテーブルで、「ID」が主キーに指定されています。

 2つのテーブルをデザインビューで開くと確認できます。[ID]フィールドの左端には、主キーのアイコン(鍵)がついています。

・ ところが、P.100 の方の[注文]フォームでは、顧客をコンボボックスにした際、テーブルではなく[顧客リスト]クエリを参照するように操作しました。( G 項 )

 もし、ここで、テーブル「顧客」を指定して作業をすると、[ID]は見えないようになります。

 なぜ、教材がクエリーを指定させているのかの詮索はさておき、このクエリには「主キー」という概念がないためコンボボックスの作りが違って来たのです。(ウィザードがそのように機能した)

 ちょっと手直しすれば、[ID]を見せないことが可能です。

 ということで、こう言う説明を始めると、次々と新しい疑問が発生するはずですね。ここでは、ある程度、先に行けば分かるという感覚を持って頂くこととし、当初の質問のお答えは以上と致します。

頁先頭へ戻る

 5. 
ペ ー ジ  
質  問  
回  答

頁先頭へ戻る