Windows8 & Office2013 Access2013

Print Friendly

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

投稿日:2017年1月7日 更新日:

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>[キャンセルして閉じる]ボタンのクリック時のイベントプロシージャ
更新日時を自動表示して記録する方法は
レコードの更新日時を保存する
の記事を参照されてください。

お勧め記事と広告

関連記事

自動文章校正をオフにしても波線が消えない

Wordで 文章を入力していると、赤や青の波線が表示されることがあります。この波線は、スペルチェックや文章校正で指摘された箇所です。この波線 ...

すべての変更を反映し変更の記録を停止

Word2013では、変更履歴に[すべての変更を反映し、変更の記録を停止]というメニューが追加されました。 Word2010までは、[校閲] ...

個人用マクロブックの作成

Excelでマクロを作成するときは、通常 作業中のブックに保存しますが、個人用マクロブックを作成すると、Excel起動時に常に起動されるので ...

フォームで入力と検索

ExcelでもAccessの単票フォームのような形で入力したり、検索したりすることができます。 1レコードずつ表示することができ、検索も新規 ...

空白をグラフに反映させたくない

Excelで下のような表を元に複合グラフを作成しました。 2011年度のデータは、7月までしかありません。E列では、累積を求める式を入れて参 ...

-Windows8 & Office2013 Access2013

Copyright © 2001-2017 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2017 AllRights Reserved Powered by AFFINGER4.