1

Microsoft Access 2007 に System というフォームがあり、このフォーム内に Utility というコンボ ボックスがあります。この下には、Utility_FOO という別のコンボ ボックスがあり、デフォルトで表示を無効にしています。ユーティリティのオプションの 1 つに、「FOO」というラベルの付いたチェックボックスがあります。FOO が選択されるたびに Utility_FOO が表示されるようにします。

リストから項目を選択するたびに (onUpdate を使用して) FOO が選択されているかどうかをチェックするサブルーチンを Visual Basic で作成しようとしましたが、その特定のエントリをチェックする方法がわかりません。これを行う簡単な方法はありますか?

ありがとう!

4

1 に答える 1

1

コンボボックスが複数の値のフィールドにバインドされている場合は、その.Valueプロパティを調べて、FOOが選択された(チェックされた)アイテムの中にあるかどうかを判断します。

Private Sub Utility_AfterUpdate()
    Call SetVisible
End Sub

Private Sub SetVisible()
    Dim varItm As Variant
    Dim blnVisible as Boolean

    blnVisible = False
    If Not IsNull(Me.Utility.Value) Then
        For Each varItm In Me.Utility.Value
            If varItm = "FOO" Then
                blnVisible = True
                Exit For
            End If
        Next varItm
    End If
    Me.Utility_FOO.Visible = blnVisible
End Sub

フォームのOnCurrentイベントに対しても同じことを行うことをお勧めします。もしそうなら、これを追加します:

Private Sub Form_Current()
    Call SetVisible
End Sub
于 2010-10-02T19:29:35.470 に答える