Accessでフォームを起動した時に自動でPCのユーザーアカウントを取得して、更新者を記録する方法です。
帳票フォームの[編集]ボタンをクリックして、単票フォームを表示したときにユーザーの名前が表示されるようにします。
参考ここでは、ウィンドウの表示は[ウィンドウを重ねて表示する]の設定にしています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
この記事の目次
テーブルの作成
[T_man]テーブルを作成して、下のように[ユーザーアカウント]と[氏名]を入力します。
[ユーザーアカウント]が主キーです。
売上テーブルの確認
[T_売上]テーブルです。
リレーションシップの確認
2つのテーブル[T_man]と[T_売上]は、フィールド[ユーザーアカウント]でリレーションシップを設定しています。
参考リレーションシップの作成と参照整合性については、以下の記事で解説しています。
-
リレーションシップの作成と参照整合性の設定
Accessでは、複数のテーブルがあって、そのテーブル間の共通フィールドを関連付けることができます。この関連付けのことを[リレーションシップ ...
[帳票]フォームの元となるクエリの作成
帳票フォームのもとになるクエリを作成します。
[T_売上テーブル]のすべてのフィールドと、[T_man]テーブルの[氏名]を表示できるようにします。
[氏名]フィールドは、[更新者]となるよう[更新者:氏名]とします。
クエリ名は[Q_売上_帳票]です。
[帳票]フォームの作成
クエリ[Q_売上_帳票]を基に帳票フォームを作成します。
[編集]ボタンを追加して、[編集]ボタンをクリックすると同じIDの単票フォームが開くように設定します。
[単票]フォームの元となるクエリの作成
クエリ[Q_売上_帳票]をコピーして、[Q_売上_単票]という名前にします。
今度は[ID]の抽出条件に [forms]![F_帳票]![ID] と入力します。
参考帳票フォームから選択したIDの単票フォームを開く方法については、帳票フォームから単票フォームを起動するにはで解説しています。
-
帳票フォームのボタンをクリックして同じIDの単票フォームを起動する
Accessで、帳票フォームから同じIDの単票フォームをボタンで起動する方法を解説します。 横に長い情報より、1つのウィンドウで表示したいと ...
[単票]フォームの作成とレコード移動時のイベント
クエリ[Q_売上_単票]を基に単票フォームを作成します。
名前は[F_単票]とします。
[レコード移動時]イベントプロシージャ
そして、フォームの[レコード移動時]イベントに
下のように書き込みます。
Set objNetWork = CreateObject("WScript.Network")
Me.ユーザーアカウント = objNetWork.UserName
これで、単票フォームを開いたときにユーザー名が表示されるようになります。
[F_単票]の[ユーザーアカウント]はプロパティの[可視]を[いいえ]にして、見えないようにしています。
[キャンセルして閉じる]ボタンを追加
何も編集せずに閉じても、更新者が保存されてしまいますので、[キャンセルして閉じる]ボタンを作成して、レコードを元に戻して閉じるようにします。
[クリック時]のイベントプロシージャ
[キャンセルして閉じる]ボタンの[クリック時]のイベントプロシージャに、下のように書き込みます。
If Me.Dirty Then
DoCmd.RunCommand acCmdUndo
End If
DoCmd.Close
参考閉じる時のボタン設置については、以下の記事も参考になると思います。
-
編集フォームを閉じる時のボタンを設置(保存せずに閉じる処理も)
帳票フォームなどのレコード一覧から、同じレコードの詳細フォームを開いて編集することがあります。 この編集フォームを閉じる場合、編集した内容を ...
更新日時を自動表示して記録する方法は、以下の記事で解説しています。
-
レコードの最終更新日時を自動保存してフォームに表示
Accessで更新日時を保存したいということは多いですね。 レコードが更新された日時をテーブルに保存する方法です。 VBAコード、埋め込みマ ...