【VBA】簡易アクセスログの元情報取得ロジック

簡易的なアクセスログの元情報を取得するためのメモ。

ブログのサンプルコードやmsdn等を参考にさせていただいた。

Accessで、管理DBを作る必要があるのだが、アクセスログや変更ログをとる仕組みがまったく思いつかない(Accessをそもそも使ったことがあまりない)ので、とても勉強になりました。

・Environ("COMPUTERNAME")、Environ("USERNAME")で、アクセス元のコンピュータ名

・GetIPAddress でアクセス元のIPアドレス

を取得する。

Private Sub コマンド0_Click()

    Debug.Print Environ("COMPUTERNAME")
    Debug.Print Environ("USERNAME")
    Debug.Print GetIPAddress

End Sub

Function GetIPAddress() As String

    Dim NetAdapters, objNic, strIPAddress
    Set NetAdapters = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") _
                           .ExecQuery("Select * from Win32_NetworkAdapterConfiguration " & _
                           "Where (IPEnabled = TRUE)")

    For Each objNic In NetAdapters ‘ネットワークアダプターは、複数ある場合がある
        For Each strIPAddress In objNic.IPAddress ‘IPは、複数割り当てられている場合がある
            GetIPAddress = strIPAddress
            Exit For        ‘ 1回のみ
        Next
        Exit For        ‘ 1回のみ
    Next

End Function

コメント

タイトルとURLをコピーしました