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

时间:2011-01-19 19:58:08

标签: database ms-access forms title captions

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

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

我一直在尝试使用环境变量动态地将环境置于表单标题中。

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

Me.Caption = Me.Caption& “:”&我!txtEnvName.Value

....在登录应用程序的动态过程中,我想做的事情。

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

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

  Customers: DEV

//////////

  Customers: TEST

/////////

  Customers: PRODUCTION

2 个答案:

答案 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