1

LINE NUMBER 用と PHASE 用の 2 つの主キーを持つデータベースがあります。この理由は、同じ行番号を使用する可能性があるが、プロジェクトのいくつかのフェーズを完全に個別に追跡する必要があるプロジェクトがあるためです。私が持っているのは、フォームのレコード情報を操作するコンボ ボックスです。これは正常に動作しますが、複数のフェーズがある場合、ラインの最初のフェーズのみが表示され、他の 4 つのフェーズは表示されません。フェーズ 1 以外のものが選択されると、最初のフェーズの情報が得られます。

選択した両方のフィールドに基づいて適切なレコードを選択するために、コンボ ボックスを 2 つのフィールドに関連付ける方法はありますか?

または、フォームの作成方法を変更する必要があるかもしれません...これを行うためのより良い方法はありますか?

レコードの選択に使用されるコード:

Sub SetFilter()

    Dim LSQL  As String

    LSQL = "select * from tblLineData_Horizon"
    LSQL = LSQL & " where lineno = '" & cboSelected & "'"

    Form_frmHorizon_sub.RecordSource = LSQL

End Sub

Private Sub cboSelected_AfterUpdate()

    'Call subroutine to set filter based on selected Line Number
    SetFilter

End Sub

Private Sub Form_Open(Cancel As Integer)

    'Call subroutine to set filter based on selected Line Number
    SetFilter

End Sub
4

2 に答える 2

0

あなたの質問は少し不明確ですが、複数の列を持つコンボボックスを作成できる場合、select ステートメントは次のようになります。

where lineno = '" & cboSelected.Column(0) & "' And otherfield='"& cboSelected.Column(1)&"'"

RowSourceプロパティをクリックし、[ビルド] ボタン (...) をクリックして、コンボボックスの背後にあるクエリに移動します。必要な列を追加したら、クエリの [プロパティ] を表示し、[Unique Valuesはい] に設定して、フィールドの組み合わせが繰り返されないようにします。

コンボボックスの他のプロパティ、「列数」と「列幅」も変更する必要があります。

于 2013-07-23T18:56:24.523 に答える