標題の件で相談させてください。
1.人事系の基幹システムから日次で下記のようなCSVデータを抽出します。
※データを変更することは無いので、この素データをそのままの形式でAccessのテーブルにインポートしています。
社員ID | 社員氏名 | 性別 | 労働時間 | 上司ID | 上司氏名 |
---|---|---|---|---|---|
101 | aaa | 男 | 156 | 501 | zzz |
102 | bbb | 男 | 157 | 501 | zzz |
103 | ccc | 女 | 158 | 501 | zzz |
104 | ddd | 女 | 159 | 502 | xxx |
105 | eee | 男 | 160 | 502 | xxx |
106 | fff | 男 | 161 | 502 | xxx |
2.これをメイン/サブフォームの形で下記のように見たいです。
───────────────────────────────────────────────────
メインフォーム
───────────────────────────────────────────────────
フラグ | 上司ID | 上司氏名 |
---|---|---|
Yes | 501 | zzz |
502 | xxx |
※フラグはユーザーが任意にフラグのon/offを編集する
※このフラグをもとにメール配信したり、Excelファイルを生成したりする
───────────────────────────────────────────────────
サブフォーム
───────────────────────────────────────────────────
社員ID | 社員氏名 | 性別 | 労働時間 | 上司ID | 上司氏名 |
---|---|---|---|---|---|
101 | aaa | 男 | 156 | 501 | zzz |
102 | bbb | 男 | 157 | 501 | zzz |
103 | ccc | 女 | 158 | 501 | zzz |
104 | ddd | 女 | 159 | 502 | xxx |
105 | eee | 男 | 160 | 502 | xxx |
106 | fff | 男 | 161 | 502 | xxx |
3.現状
これを実現するため、下記手順を実施しています。
- 素データをインポート
- 上司のカラムデータを基にグループ化して、上司ID、上司氏名、フラグの属性を持たせたメインテーブルにデータを追加(追加前にデータを削除)
- メインフォームのレコードソースはメインテーブル
- メイン/サブフォームのリンクフィールドを上司Idとする
- 素データから労働時間等を表示するためのクエリを作成して、サブフォームのレコードソースとする
4.相談
グループ化をすると更新不可のクエリになってしまって、
ユーザーがフラグの編集ができなくなってしまうので、
一旦、グループ化したデータをテーブルに変換しています。
このような仕様を実装するにあたり、よい方法はないでしょうか?
よろしくお願いいたします。
※管理者が、読みやすいように書式を改善しました。
メインフォームののことですか。サブフォームのことですか。
これをせずに、グループ化したクエリをメインフォームのソースにしたいということでしょうか。
最初のご質問への回答は、メインフォームです。
二つ目のご質問への回答は、その通りです。できたらいいなと思ってご質問させていただきました。
下記で紹介している方法を使えば、更新できないクエリでも、チェックボックスにチェックを入れることはできます。
ただし、フォーム上のテキストボックスに選択データを格納しているので、フォームを閉じれば消えてしまいます。
また、エクセルにエクスボートする場合は、SQLをVBAで生成する必要があります。
お返事遅くなって申し訳ございません。
サブフォームコントロールを使っておりますので、アドバイスいただいた方法は実装が困難です。
こういう手が使えないのだとしたら、これまで私がやっていたような方法がリーズナブルでしょうか?
メインフォームの方にチェックを入れたいのですよね。
まあ、サブフォームでもメインフォームでも実装は可能ですが、
現状の方法で十分だと思います。
どうもありがとうございました。
ひとまずは現状の方法で対応さるようにいたします。