こんにちは。SAWAです。
前回は、「社員情報テーブル」を作成しました。
今回はその「社員情報テーブル」にデータを入力しながら、
データ型や詳細なフィールドについて見ていきます。
それでは、社員情報を構成する5つのフィールドを見ていきます。
(フィールドプロパティについては主要な項目のみ抜粋します。)
[フィールド1]
・フィールド名:社員番号
・データ型:オートナンバー型
・フィールドサイズ:長整数型
・新規レコードの値:インクリメント
・インデックス:はい(重複なし)
データを追加した際に、社員番号を自動的に連番にて採番するように設定しています。
「フィールドサイズ」→「新規レコードの値」→「データ型」の順で日本語にすると、
「整数型で1づつ加算しながら自動採番せよ」となります。
「インデックス」は、第1回で話した「関連付け」で高速にデータ検索を行うための設定です。
[フィールド2]
・フィールド名:社員名
・データ型:テキスト型
・フィールドサイズ:20
・空文字列の許可:いいえ
・IME入力モード:オン
社員の名前を格納する項目です。
注意点としては、フィールドサイズ:20という部分です。
ここでのサイズは「文字数」です。
他のRDB製品(Oracle、SQLServer)では、半角=1バイト・全角=2バイトと「バイト数」で
制限をがありますが、Accessでは簡単に表現されてテキスト型では文字数での制約となります。
「空文字の許可」は、必ず氏名は入力しなければならないようにするために、
空文字は認めないとしています。
「IME入力モード」で、この項目を入力する時には自動で全角入力に切り替わるなるようにしています。
[フィールド3]
・フィールド名:生年月日
・データ型:日付/時刻型
・書式:日付(S)
・IME入力モード:オフ
・日付選択カレンダーの表示:日付
社員の生年月日を格納する項目です。
生年月日は日付なので、「データ型」は日付/時刻型にしています。
且つ、「書式」を日付(S)とすることにより、「yyyy/mm/dd」の形式で格納します。
入力の支援として、「IME入力モード」で自動で半角に切り替わるように設定し、
「日付選択カレンダーの表示」で入力時に日付選択ボックスが表示されるようにしています。
[フィールド4]
・フィールド名:性別
・データ型:テキスト型
・フィールドサイズ:1
・空文字列の許可:いいえ
・IME入力モード:オン
・ルックアップ
_表示コントロール:コンボボックス
_値集合タイプ:値リスト
_値集合ソース:1;男;2;女
_連結列:1
_列数:2
_列見出し:いいえ
_リスト行数:2
性別を区分(男なら「1」、女なら「2」)として格納する項目です。
入るべき値としては、「1」か「2」のどちらかなので、
ルックアップ機能を使用して、それ以外の項目が入らないようにしています。
この機能によりデータ入力の際、下図のように選択入力が可能になります。
[フィールド5]
・フィールド名:所属部署コード
・データ型:テキスト型
・フィールドサイズ:2
所属部署コード(0詰、2桁)を格納する項目です。
今後作成する、部署マスタと結合する際のキーとなる項目です。
以上でテーブルの作成は完了しましたが、
社員番号を「主キー」にする作業を行います。
「主キー」というのは、必須の設定事項ではありませんが、
テーブルの登録されたデータの中でどれか1つの行を
特定する際に便利な機能です。
「主キー」に設定された項目(複数項目可)は、対象となった項目内での重複・空文字は許されなくなります。
設定方法は、主キーとしたい項目を選択し、メニューバーの「主キー」をクリックします。
次はデータを入力する画面を表示します。
テーブルを保存して、メニューバーの「表示」→「データシートビュー」をクリックします。
表示された「データシートビュー」に直接値を入力していきながら、
上記で行った設定がどのように動作するかを検証してください。
(実業務では、直接テーブルに手入力で値を入力することは、あまりしません。
しかし、手で入力することにより各設定の意味が分かると思います。)
今回は、項目設定の方法と意義を社員情報テーブルを元に確認してもらいました。
各項目でデータ型に応じて様々なパターンがあるため、とても書きにくく読みにくい
内容になってしまったと感じています。すみません。。
正直、この部分は色々なテーブルを作りながら、必然的に分かってくる箇所が多いです。
こういうプログラムやシステムを自習する上では、
「本を読むだけ」とか「ブログを読むだけ」では無く、
色々とテーマを考えて実際に手を動かしながら勉強していくのがベストと考えます。
次回は、部署マスタ等の他のテーブルを用意し、
リレーショナルデータベースの重要な機能「結合」について書いていきたいと思います。