よろしくお願いいたします。
テーブル
tbl残業管理 主キー:残業管理ID
残業管理ID
担当者ID
日付
残業予定時間_時
残業予定時間_分
承認者
承認日
tbl残業管理Sub 主キー:残業管理ID、SubID
残業管理ID
SubID
受入番号
作業内容
備考
クエリ
qry残業管理
残業管理ID
担当者ID
日付
残業予定時間_時
残業予定時間_分
承認者
承認日
SubID
受入番号
作業内容
備考
クエリを基にフォームを作成し、残業管理IDごとに承認したい(承認者と承認日に入力)のですが、
残業管理IDが複数(同じ番号が複数)になり、承認者と承認日も複数になります。
グループ化してきれいに1つにするような手はないものでしょうか?
Accessの仕様のため、無理でしょうか?
一対多の関係のテーブルですので、Accessでは通常、メイン/サブフォーム形式のフォームで入力作業をすることになります。
Accessのフォームのメイン/サブフォームとは | できるネット
ACCESS サブフォームの作成方法 - たすけてACCESS
hatena様
ご回答ありがとうございます。
言葉足らずで、すみません。
すでに残業のデータを、メイン/サブフォーム形式で個人個人が入力してあり、
そのデータの一覧を表示(今回のフォーム)し、承認者が承認するということになります。
一対多のテーブルを連結したクエリでは、一側のデータは複数表示されるのはデーターベース的には仕方ないことです。
イメージとしてはエクセルでのセル連結みたいなことがしたいのだと思いますが、それを帳票フォームで実現するのは難しいですね。
メイン/サブフォーム形式のフォームをデータシートビューにすると、多側のデータをサブデータシートとして展開できる表示になります。これを使うのはどうでしょうか。
サブデータシートというのは下記のリンク先の画像のように左端の+ボタンをクリックすると子データシートが展開するものです。
サブデータシート - もう一度学ぶMS-Access
フォーム上にデータシートとサブデータシートを表示する - もう一度学ぶMS-Access
もう一つの案としては、レポートだと重複データ非表示の機能があるのでそれを使うというのもありますね。
レポートビュー表示にすればテキストボックスをクリックできますので、クリックしたときにポップアップフォームを表示させてそこで一側のデータを入力させて、そのデータでテーブルを更新する、その後レポートを再クエリという処理をVBAで構築することになりますね。
あるいは、データをエクセルに出力してそこで入力してもらって、エクセル上のボタンクリックでAccessのテーブルを更新するとか。
hatena様
いろいろご回答ありがとうございます。
サブデータシートかレポートの重複データ非表示よりポップアップフォームでの更新かのどちらかでやってみます。
両方作ってみて見栄えや操作のしやすさなどでどちらか決めたいと思います。