2011-01-19 41 views
0

我有一個Access應用程序訪問3個環境(DEV; TEST; PROD)。登錄時設置環境變量以編程方式連接到正確的數據庫。如何動態設置所有申請表格標題屬性

我們希望用戶能夠在他們使用的每種表格中看到他們所連接的環境。一個想法是設置標題欄的顏色,但會影響所有窗口。

我一直在試圖通過使用環境變量動態地將表單標題中的環境。

表單屬性設置的事件過程,如當前或在打開諸如:

Me.Caption = Me.Caption & 「:」 &我txtEnvName.Value

...在登錄到應用程序時的動態過程是我想要做的。

手動更改應用程序中的所有表單不是所需的選項。

這裏是一個什麼樣的形式,看起來像在3個不同的evironments樣本:

Customers: DEV 

//////////

Customers: TEST 

///// ////

Customers: PRODUCTION 
+0

你能幫助/關於表格嗎? – Beth 2011-01-19 20:23:13

+0

謝謝Beth, – DonC 2011-01-19 20:33:45

回答

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

這將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