Microsoft Access 掲示板

トランザクションデータを親子関係で見たい

6 コメント
views
4 フォロー

標題の件で相談させてください。

1.人事系の基幹システムから日次で下記のようなCSVデータを抽出します。

  ※データを変更することは無いので、この素データをそのままの形式でAccessのテーブルにインポートしています。

社員ID社員氏名性別労働時間上司ID上司氏名
101aaa156501zzz
102bbb157501zzz
103ccc158501zzz
104ddd159502xxx
105eee160502xxx
106fff161502xxx

2.これをメイン/サブフォームの形で下記のように見たいです。

───────────────────────────────────────────────────
メインフォーム
───────────────────────────────────────────────────

フラグ上司ID上司氏名
Yes501zzz
502xxx

※フラグはユーザーが任意にフラグのon/offを編集する
※このフラグをもとにメール配信したり、Excelファイルを生成したりする

───────────────────────────────────────────────────
サブフォーム
───────────────────────────────────────────────────

社員ID社員氏名性別労働時間上司ID上司氏名
101aaa156501zzz
102bbb157501zzz
103ccc158501zzz
104ddd159502xxx
105eee160502xxx
106fff161502xxx

3.現状

これを実現するため、下記手順を実施しています。

  • 素データをインポート
  • 上司のカラムデータを基にグループ化して、上司ID、上司氏名、フラグの属性を持たせたメインテーブルにデータを追加(追加前にデータを削除)
  • メインフォームのレコードソースはメインテーブル
  • メイン/サブフォームのリンクフィールドを上司Idとする
  • 素データから労働時間等を表示するためのクエリを作成して、サブフォームのレコードソースとする

4.相談

グループ化をすると更新不可のクエリになってしまって、
ユーザーがフラグの編集ができなくなってしまうので、
一旦、グループ化したデータをテーブルに変換しています。
このような仕様を実装するにあたり、よい方法はないでしょうか?

よろしくお願いいたします。

※管理者が、読みやすいように書式を改善しました。

けんたろー
作成: 2019/06/25 (火) 06:38:48
最終更新: 2019/06/25 (火) 10:48:41
通報 ...
1

グループ化をすると更新不可のクエリになってしまって、

メインフォームののことですか。サブフォームのことですか。

上司のカラムデータを基にグループ化して、上司ID、上司氏名、フラグの属性を持たせたメインテーブルにデータを追加(追加前にデータを削除)

これをせずに、グループ化したクエリをメインフォームのソースにしたいということでしょうか。

2
けんたろー 2019/06/25 (火) 11:32:51 a63a9@86c72

最初のご質問への回答は、メインフォームです。

二つ目のご質問への回答は、その通りです。できたらいいなと思ってご質問させていただきました。

3

下記で紹介している方法を使えば、更新できないクエリでも、チェックボックスにチェックを入れることはできます。

非連結のチェックボックスでレコードを選択する
帳票フォームでチェックボックスを配置して、チェックしたレコードのみ選択して印刷したいのですが、一つのレコードをチェックするとすべてのレコードが選択されてしまいます。 掲示板でたまにみかける質問です。気持ちは分かりますが、非連結コントロールでの更新はすべてのレコードに反映されてしまいます。一つのコントロールにプロパティ値は一つしかもてませんので。各レコード毎にプロパティ値を持つような設計にしたら大量...
fc2

ただし、フォーム上のテキストボックスに選択データを格納しているので、フォームを閉じれば消えてしまいます。
また、エクセルにエクスボートする場合は、SQLをVBAで生成する必要があります。

4
けんたろー 2019/06/27 (木) 16:54:44 a63a9@86c72

お返事遅くなって申し訳ございません。

サブフォームコントロールを使っておりますので、アドバイスいただいた方法は実装が困難です。

こういう手が使えないのだとしたら、これまで私がやっていたような方法がリーズナブルでしょうか?

5

メインフォームの方にチェックを入れたいのですよね。
まあ、サブフォームでもメインフォームでも実装は可能ですが、
現状の方法で十分だと思います。

6
けんたろー 2019/06/28 (金) 13:36:56 a63a9@86c72

どうもありがとうございました。
ひとまずは現状の方法で対応さるようにいたします。