Как я могу динамически установить все свойства подписи форм приложения - PullRequest
0 голосов
/ 19 января 2011

У меня есть одно приложение Access, которое обращается к 3 средам (DEV; TEST; PROD). При входе в систему устанавливается переменная среды для программного подключения к правильной базе данных.

Мы бы хотели, чтобы пользователь видел, к какой среде он подключен, в каждой форме, которую он использует. Одна мысль состоит в том, чтобы установить цвет строки заголовка, но это влияет на все окна.

Я пытался динамически поместить среду в заголовок формы с помощью переменной среды.

Установка процедуры обработки события в свойствах формы, таких как «Вкл. Текущий» или «При открытии», таких как:

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

.... в динамическом процессе при входе в приложение я бы хотел это сделать.

Изменение всех форм в приложении вручную нежелательно.

Вот пример того, как форма будет выглядеть в 3 различных средах:

  Customers: DEV

//////////

  Customers: TEST

/////////

  Customers: PRODUCTION

Ответы [ 2 ]

1 голос
/ 20 января 2011

Это добавляет переменную среды 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
1 голос
/ 20 января 2011

Вы можете легко установить подписи для всех форм:

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 каждой из форм, чтобы проверить глобальную переменную и соответственно установить заголовок.

...