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