人事管理ソフトを作成中です。
社員の登録フォームにて、学歴や職歴を登録するフォームがあるのですが、一度に複数の情報をテーブルに保存することは可能でしょうか。
例えば、学歴だと高校から大学院卒業までを1度の登録画面で登録できるようにしたいです。
学歴テーブルと職歴テーブルそして社員テーブルは作成しました。
ちなみに学歴テーブルと職歴テーブルは他のソフトから引っ張ってきているため縦に履歴があります。
例えば、
社員番号 大学名 学部 学科
1004 ○○大学 ○○学部 ○○学科
○○高校 ○○学部 ○○科
・
・
・
1007・・・
のように下にデータを積み上げています。
私が行いたいことは、
学歴や職歴など複数のデータがあるものは登録画面から1度で登録できるようにしたいとうことです。
わかりにくい質問かもしれませんがどなたか回答をお願い致します。
No.3ベストアンサー
- 回答日時:
社員テーブル(社員番号、氏名)、学歴テーブル(学歴コード、社員番号、学校名、学部、学科)、職歴テーブル(職歴コード、社員番号、会社名、入社日、退社日)のように、3つのテーブルを作ります。
()内は、テーブル内のフィールド名です。社員テーブルの社員番号を主キーとします。学歴コード、職歴コードもそれぞれのテーブルの主キーにします。(基本的にテーブルには主キーを作るのが基本です。)社員テーブルの社員番号と学歴テーブルの社員番号、職歴テーブルの社員番号とそれぞれ、1対多のリレーションシップを作成します。リレーションシップは、リボンのデータベースツールメニューのリレーションボタンをクリックして表示される画面で設定します。
次に、夫々のテーブルを元にフォームを作成します。
社員テーブルについては、単票形式、他は、表形式で作成します。
ここで、学歴、職歴テーブルのフォームには社員コードのフィールドを含める必要はありません。
社員テーブル単票形式フォームを開き、空白部分に、他の二つの表形式フォームをドラッグして、フォームーサブフォームの関係を作ります。
これで、社員フォーム上で、社員テーブル、学歴テーブル、職歴テーブルが社員コードで連結されたことになります。
ここで、入力に際し、注意が必要です。
最初に、社員名から登録する場合、学歴、職歴を入力する前に、Shift-Return操作で、一旦社員名データを確定して社員テーブルに格納する必要があります。そうしないと、社員コードの主キーが確定していない状態、関連データが入力されてしまい、それぞれがリレーションシップの取れない状態で、格納されてしまいます。これを回避する為、私の場合、サブフォームにフォーカスされた時点で、強制的に保存処理(DoCmd.RunCommand acCmdSaveRecord)されるようにプログラムしています。この点に注意して入力して貰えれば、目的は達せらる筈です。
但し、既存の別ソフトのデータを取り込みたいのであれば、データの正規化が必要になりそうですので勉強してください。
No.2
- 回答日時:
>>学歴や職歴など複数のデータがあるものは登録画面から1度で登録できるようにしたいとうことです。
さしあたって2つ考えることがありますね。
1.画面レイアウト
2.データ更新方法
1.の社員1人にたいして最終学歴だけなら1行におさまりますが、中学、高校まで表示させたら複数行になります。
また、職歴も複数行になる方も多いでしょう。
2.のデータ更新も、更新対象が複数テーブルになっているようですね。
1.はデザインの問題もありますけど、それをいかに実現するか?というプログラムの問題になります。
また、複数のデータ(テーブル)に書き込まれているなら、それぞれに書き込む処理をするプログラムが必要となります。
一般的には、この手のプログラムは面倒で複雑になることが多いです。
そのため、ソフト会社では、そういう処理を楽にする部品ソフトをグレープシティというソフト会社などから購入して利用するケースが多いようです。(1年間 開発ライセンス 156,800 (税抜) )
ただ、この手のソフトは、一般的にAccessではなく、C#やVBやC#を利用して作ることが多いので、Accessに対応しているかは不明です・・・。
No.1
- 回答日時:
えっと。
。。画面入力のデザインのお話と、画面で入力されたデータをサーバー上のデータベース・テーブルに格納するお話をごちゃごちゃに考えておられるように受け取れます。
処理としては・・・
(1) 社員の学歴を入力する画面を表示する際、一つ前の画面か学歴入力を行う場面で社員番号を入力すると学歴テーブルを参照してそこに該当社員の学歴データがあればその内容を入力欄にセットした入力画面を表示。
(2) 表示された画面に対し操作者は必要に応じて入力操作を行い「登録」ボタンを押すなどしたら画面上にセットされた値を学歴テーブルに格納。その際、既に学歴テーブルに値があるものに関しては画面入力された値に置き換える。(=追加ではなく更新を行う)
・・・というだけのことかと思います。ご質問の文面から想像する限りはです。
参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのフォームのテキストボ...
-
初心者なのですが・・・access...
-
ACCESSで他のテーブルからのデ...
-
AccessVBA SetFocusとGoToCon...
-
Microsoft Accessの使い方
-
CUBASE LE5でアクティベーショ...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
アクセスのエラー「クエリには...
-
エクセルにおける「フィールド...
-
Accessで、1つの項目に複数の...
-
ACCESS 重複データを1...
-
アクセスで追加した項目に全て...
-
ACCESS 「パラメータの入力」...
-
テキストボックスにクエリ結果...
-
2つのテーブルに共通するレコ...
-
アクセス 項目毎にデータを横...
-
yes/no型のチェックができない...
-
ACCESSのクエリで抽出条件「ま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのフォームのテキストボ...
-
AccessVBA SetFocusとGoToCon...
-
Access フォームの参照先について
-
初心者なのですが・・・access...
-
アクセスのデータをCSVファイル...
-
Accessのフォームで計算した結...
-
Accessでアンケート集計を構築...
-
access2019 コンボボックスの値...
-
accessについてです。
-
アクセス クエリーの作成
-
FileMakerProで、ポップアップ...
-
Microsoft Accessの使い方
-
Access97のフォームで一人につ...
-
差込印刷での全角表示について...
-
日付型のフィールドに空白を入...
-
SQL文で パラメータが少なすぎ...
-
アクセスのエラー「クエリには...
-
アクセスで追加した項目に全て...
-
2つのテーブルに共通するレコ...
-
エクセルにおける「フィールド...
おすすめ情報