フォームデザインで遊んでいて、今ではほぼ完成したフォームを作成しました。VBAにアクセス - コンボボックス変更イベントをトリガーする
フォームは、「Table1」のIDと「Table2」のIDの2つのフィールドしかない「結合テーブル」にバインドされています。これらの2つのフィールドに基づいて、私は "Table1" & "Table2"のフィールドを同じフォームに追加しました。次に、2つのオプションボタン、1つのコンボボックスと2つのサブフォームを追加しました。
これにより、「Table1」または「Table2」ビューの各観点から、結合された2つの異なるテーブルのレコードを見ることができます。私はComboboxのrowsourceを変更するOptionボタンでこのビューを選択していますので、Comboboxからのレコードに移動することができます。ここで
コード:このコードは唯一のオプションボタンのある投稿を
Private Sub OptButton0_Click()
If Me.OptButtonO.Value = True Then
Me.OptButton1.Value = False
Me.Cmbox.RowSource = "SELECT [Table1].[Field1], [Table1].[Field2], [Table1].[Field3] FROM Table1 ORDER BY [Field1];"
Me.Cmbox.SetFocus
Me.Cmbox = Me.Cmbox.ItemData(0)
End If
End Sub
Private Sub Cmbox_AfterUpdate()
If Me.OptButton0.Value = True Then
If IsNull(Me!Cmbox) Then Exit Sub
With Me.RecordsetClone
.FindFirst "[Field1] = " & Me!Cmbox
If Not .NoMatch Then
If Me.Dirty Then Me.Dirty = False
Me.MySubform.Width = 8280
Me.MySubform.SourceObject = "MySubform"
Me.Bookmark = .Bookmark
Else
Me.MySubform.Width = 8000
Me.MySubform.SourceObject = ""
End If
End With
Me.Cmbox.SetFocus
DoCmd.Requery
End If
End Sub
、もう一つは正反対、同じです。今問題は何ですか?
問題は、別のビューの2番目のオプションボタンをクリックしてから同じビューに戻り、別のオプションボタンをクリックしたときのサブフォームの結果は同じですが、コンボボックスのlistIndexは0です。コンボボックスからコンボボックスListindexを選択すると、コードが再び機能します。
基本的に - オプションボタンがクリックされたときにコンボボックスの変更を行うコードが必要です。 Comboboxをクリックしているときに機能しますが、Optionボタンをクリックしたときは機能しません。
私は知っているそれは理解するのは難しいです、コードを見て、何かを尋ねてください。どんな助けもありがたい。
オプションボタンをクリックするか、コードをトリガできるアクションを実行すると、Userform VBAエディタでコンボボックスをデザインする際に、コンボボックスがデザインされているように思えるのですが、基本的にはコンボボックスの変更をトリガーするコードが必要です。そのSubに移動してコードを入力することができます。私は間違っていないなら、これがあなたが必要とするものだと思います。 – newguy
私は説明するのは本当に難しいですが、一番下の行は - 私は一つのレコードを見ています>そして、私は他のオプションボタンをクリックして、他のサブフォームのいくつかの表示を行います>次に私は最初のオプションボタンをクリックし、 Combobox Listindexはこれ以上同じではありません。しかし、コンボドロップダウンリストをクリックすると、コードが再び動作します。このコンボボックスの選択をトリガできる方法はありますか? – LuckyLuke82