0

サブフォームに 2 つのコンボボックスがあります。最初のコンボボックスは、2 番目のコンボボックスに入力するために使用されます。これらは、フォームの詳細セクションに配置されます。最初のコンボボックスから任意の値を選択すると、同じ行の2番目のコンボボックスに関連する値が取り込まれます。

今のところ、これを実装しようとしましたが、行 1 の最初のコンボボックスから任意の値を選択すると、同じ行の 2 番目のコンボボックスにデータが入力されますが、コンボボックスの最初のセットから値を選択すると、上記のコンボボックスの 2 番目のセットの値が変化するか、null になります。

コードは次のとおりです。

最初のコンボボックスは cboRCMTask です:

Private Sub cboRCMTask_AfterUpdate() 
    Me.cboRCMTaskOptions.RowSource = "SELECT ID, RCMTaskOptions FROM tblRCMTaskOptions WHERE RCM_ID=" & Me.cboRCMTask.Column(0) & ";" 
    Me.cboRCMTaskOptions = Me.cboRCMTaskOptions.ItemData(0) 
    Me.cboRCMTaskOptions.Requery 
End Sub 

cboRCMTaskOptions は 2 番目のコンボボックスです。

form_current イベント:

Private Sub Form_Current() 
    Me.cboRCMTask.RowSource = "SELECT ID, RCMTask FROM tblRCMTask;" 
    If IsNull(txtRCM_ID) Then 
        Me.cboRCMTask = Me.cboRCMTask.ItemData(0) 
    End If 
    Me.cboRCMTaskOptions.RowSource = "SELECT ID, RCMTaskOptions FROM tblRCMTaskOptions WHERE RCM_ID=" &    Me.cboRCMTask.Column(0) & ";" 
    If IsNull(txtRCMOption_ID) Then 
        Me.cboRCMTaskOptions = Me.cboRCMTaskOptions.ItemData(0) 
    End If 
End Sub 
4

2 に答える 2

1

あなたの説明から、連続フォームを使用しています。連続フォームには多くの行があるように見えますが、コーディングの観点からは、現在の行という 1 つの行しかないと見なすことができます。コンボ 2 のコントロール ソースは、コンボの非表示の数値列であると思われます。コンボの行ソースを変更すると、表示されている行が見つからなくなり、表示できなくなります。編集用のポップアップ フォームを提供するか、フォームの値を保存するテキスト ボックスと、その値を編集するための少し厄介なコンボを提供する必要があります。条件付き書式を使用して、外観を少し改善することができます。

于 2012-04-23T09:21:44.810 に答える
1

最初のコードで、コードを on_click イベントにシフトします。ItemData への参照で何を達成しようとしているのかわかりませんが、不要だと思います。その行をコメントアウトしてください。

Form_current イベントの最後から 3 行目も同様に、再クエリに置き換えます。

于 2012-04-23T04:50:52.117 に答える