如何动态设置所有Application Forms Caption属性

我有一个Access应用程序访问3个环境(DEV; TEST; PROD)。登录时设置环境变量以编程方式连接到正确的数据库。 我们希望用户在他们使用的每种表单中查看他们所连接的环境。一种想法是设置标题栏的颜色,但这会影响所有窗口。 我一直试图通过使用环境变量动态地将环境置于表单标题中。 在表单属性中设置事件过程,例如On Current或On Open,例如: Me.Caption = Me.Caption& “:”&我!txtEnvName.Value ....在动态过程中登录到应用程序是我想要做的。 手动更改应用程序中的所有表单不是理想的选项。 以下是3种不同环境中表单形状的示例:
  Customers: DEV
//////////
  Customers: TEST
/////////
  Customers: PRODUCTION
    
已邀请:
您可以轻松地为所有表单设置字幕:
Const strEnvironment = " : DEV"

Sub FormCaption()
Dim frm As Object
For Each frm In CurrentProject.AllForms
    DoCmd.OpenForm frm.Name, acDesign
    Forms(frm.Name).Caption = frm.Name & strEnvironment
    DoCmd.Close acForm, frm.Name, acSaveYes
Next

End Sub
但是,我建议您使用每个表单的Open事件来检查全局变量并相应地设置标题。     
这会将COMPUTERNAME环境变量添加到我的表单的标题中。
Private Sub Form_Open(Cancel As Integer)
    Me.Caption = Me.Caption & ": " & Environ("COMPUTERNAME")
End Sub
如果您还想包含颜色以区分数据库实例,则可以更改详细信息部分的背景颜色。这将根据Your_env_variable的值更改它。
Dim lngColor As Long
Select Case Your_env_variable
Case "DEV"
    lngColor = vbRed
Case "TEST"
    lngColor = vbYellow
Case "PRODUCTION"
    lngColor = vbGreen
Case Else
    lngColor = -2147483633
End Select
Me.Detail.BackColor = lngColor
    

要回复问题请先登录注册