簡體   English   中英

可以在 vba 中的公共常量上使用 dlookup 嗎?

[英]it is possible to use a dlookup on a public const in vba?

我有大約 10 個表單,我需要在所有表單中輸入一些基本信息,例如日期和用戶,為此我在所有表單上使用相同的代碼,我正在搜索一個表單來設置此信息,只是稱呼

現在的vba

Private sub Form_Load()

Dim userId As String
userId = Environ("Username")

Dim uSer As String
uSer = DLookup("User", "Adm_User", "UserId='" & Environ$("Username") & "'")

Dim dtNow as string
dtNow = Format(Now, "dd/mm/yyyy hh:mm")

me.text_userId.Caption = userId
me.text_uSer.Caption = uSer
me.text_dtNow.Caption = dtNow

我想要的vba

Public Const userId As String = Environ("Username")
Public Const uSer As Variant = DLookup("User", "Adm_User", "UserId='" & Environ$("Username") & "'")
Public Const dtNow As String = Format(Now, "dd/mm/yyyy hh:mm")

Private sub Form_Load()

me.text_userId.Caption = userId
me.text_uSer.Caption = uSer
me.text_dtNow.Caption = dtNow

簡單的方法是在“通用”模塊中保留一組函數:

Public Function GetUserId() As String

    Dim UserId  As String

    UserId = Environ("Username")

    GetUserId = UserId

End Function


Public Function GetUser() As String

    Static User As String

    If User = "" Then 
        User = Nz(DLookup("User", "Adm_User", "UserId = '" & GetUserId & "'"))
    End If

    GetUser = User

End Function


Public Function FormatNow() As String

    Dim Text    As String

    Text = Format(Now, "dd/mm/yyyy hh:nn")

    FormatNow = Text

End Function

然后在表單加載時調用它們:

Private Sub Form_Load()

    Me!text_userId.Caption = GetUserId
    Me!text_user.Caption = GetUser
    Me!text_dtNow.Caption = FormatNow

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM