0

我有一个访问 3 个环境(DEV;TEST;PROD)的 Access 应用程序。登录时设置环境变量以编程方式连接到正确的数据库。

我们希望用户在他们使用的每种形式中看到他们连接到哪个环境。一种想法是设置标题栏的颜色,但这会影响所有窗口。

我一直在尝试通过使用环境变量将环境动态地放入表单标题中。

在表单属性中设置事件过程,例如 On Current 或 On Open,例如:

Me.Caption = Me.Caption & " : " & Me!txtEnvName.Value

....在登录应用程序后的动态过程中是我想做的。

手动更改应用程序中的所有表单不是一个理想的选择。

以下是 3 种不同环境中表单的示例:

  Customers: DEV

//////////

  Customers: TEST

/////////

  Customers: PRODUCTION
4

2 回答 2

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 事件来检查全局变量并相应地设置标题。

于 2011-01-19T21:08:11.727 回答
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
于 2011-01-19T22:09:18.607 回答