Access

【ACCESS VBA】データを更新したユーザー情報を保存する

データの更新時(追加時も同様)は、更新日時(保存日時)とともに、そのデータを更新したユーザーも特定しておいた方が、後々の追跡に役立ちます。

このため、基本どのテーブルにも更新日時と最終更新者フィールドを作成しています。

更新日時はnow()関数で取得したシステム日時を格納すればOKですが、

最終更新者はどのように格納すればよいでしょうか?

最終更新者情報を更新する方法

Accessで作成したツールにログイン機能がある場合は、そのログイン情報をセットすればOKですね。

Accessで作成したツールにログイン機能がない場合はWindowsのログイン情報を取得して格納します。

Windowsのログイン情報は環境変数の値が取得できる、Environ()関数を利用して取得します。

Environ()関数でログインユーザー名を取得

Environ()関数の引数に”USERNAME”を渡すことでログインユーザー名を文字列として取得できます。

サンプルでは取得したログインユーザー名をmsgboxで出力しています。

サンプルコード

msgbox Environ(“USERNAME”)

取得したユーザー名をテーブルの最終更新者フィールドにUPDATEして完了です!

簡単!!!

Environ()関数で取得できるその他の環境変数

Environ()関数はログイン情報だけではなく、OS(Windows)の環境変数が取得できます。

取得できる主な環境変数は以下の通りです。

環境変数の名前説明 説明 サンプル
PATH PATH環境変数 C:\Program Files (x86)\Microsoft Office\Office12\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\・・・・
OS オペレーティングシステム Windows_NT
HOMEDRIVE プライマリローカルドライブ C:
HOMEPATH 既定のユーザー用ディレクトリ \Users\tanaka・・・・
USERNAME ユーザー名 tanaka
WINDIR システムディレクトリ C:\windows
引数の環境変数に存在しない値を指定した場合、長さ0の文字列””が戻されます。(エラーにはなりません)

また、環境変数は大文字でも小文字でもOKです。

共有パソコンを複数人で利用しているにも関わらずログインアカウントは同じものを使っています!と言われると全く対応できません(;^_^A

このような使い方は基本NGなのでログインする人がそれぞれのアカウントを使うようにしてください。

ABOUT ME
アズビーパートナーズ
アズビーパートナーズ
プログラマーと社内SEとしての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。
今のスキルのままで大丈夫?

あなたのスキル。今のままで大丈夫ですか?

時代のニーズに合った開発スキルを身につけてあなたの価値を高めましょう。

\オンラインでも教室でも学べるおすすめのスクール/

TECH::CAMP(エンジニアスクール)

まずは基礎から・・・という方はProgateUdemyどっとインストールなどがおすすめ!

スキルアップについて詳しくはこちら