おすすめ記事

同じカテゴリー

ユーザーアカウントを取得して更新者を記録する



Accessでフォームを起動した時に自動でPCのユーザーアカウントを取得して、更新者を記録する方法です。
帳票フォームの[編集]ボタンをクリックして、単票フォームを表示したときにユーザーの名前が表示されるようにします。
ユーザー名を自動取得
[T_man]テーブルを作成して、下のように[ユーザーアカウント]と[氏名]を入力します。
[ユーザーアカウント]が主キーです。
T_manテーブル
[T_売上]テーブルです。
テーブル

スポンサーリンク

2つのテーブルは、ユーザーアカウントでリレーションシップを結んでいます。

帳票フォームの元になるクエリを作成します。[T_売上テーブル]のすべてのフィールドと、[T_man]テーブルの[氏名]を表示できるようにします。[氏名]フィールドは、[更新者]となるよう[更新者:氏名]とします。
クエリのデザインビュー
クエリ[Q_売上_帳票]を元に帳票フォームを作成します。[編集]ボタンを追加します。
F_帳票フォーム
クエリ[Q_売上_帳票]をコピーして、[Q_売上_単票]という名前にします。
今度は[ID]の抽出条件に[forms]![F_帳票]![ID]と入力します。
帳票フォームから選択したIDの単票フォームを開く方法については、帳票フォームから単票フォームを起動するにはで解説していますので、ご参照ください。
IDの抽出条件
クエリ[Q_売上_単票]を元に単票フォームを作成します。名前は[F_単票]とします。そして、フォームの[レコード移動時]イベントに
単票フォーム
下のように書き込みます。
   Set objNetWork = CreateObject("WScript.Network")
   Me.ユーザーアカウント = objNetWork.UserName
レコード移動時のイベントプロシージャ
これで、単票フォームを開いたときにユーザー名が表示されるようになります。
[F_単票]の[ユーザーアカウント]はプロパティの[可視]を[いいえ]にして、見えないようにしています。
帳票フォームと単票フォーム
何も編集せずに閉じても、更新者が保存されてしまいますので、[キャンセルして閉じる]ボタンを作成して、レコードを元に戻して閉じるようにします。
キャンセルして閉じるボタン
[キャンセルして閉じる]ボタンのクリック時のイベントプロシージャに、下のように書き込みます。
   If Me.Dirty Then
   DoCmd.RunCommand acCmdUndo
   End If
   DoCmd.Close
<br>[キャンセルして閉じる]ボタンのクリック時のイベントプロシージャ
更新日時を自動表示して記録する方法は
レコードの更新日時を保存する
の記事を参照されてください。

トラブルをすぐに解決したいならteratail

おすすめ記事

シェアする