0

3 つの環境 (DEV; TEST; PROD) にアクセスする 1 つの 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 に答える