3

Access 2010 を使用すると、フォームにバインドされていないコンボがあり、次のようになります...

RowSource: SELECT EventID, DocRef FROM Events
BoundColumn: 1 
ColumnCount: 2
ColumnWidths: 0cm;2cm

vba でのコンボ値の設定 (MyCombo="23") は、バインドされた列が表示されている場合にのみ機能します。columnWidth="0cm;2cm" を設定すると、割り当てが機能しなくなります。

Sub Form_Open()
   evt = Me.OpenArgs
   If evt > "" Then
      MyCombo = evt
      ' MyCombo.Value = evt
      Call MyCombo_AfterUpdate
   End If
End Sub

eventID を表示せずにコンボ行を選択するにはどうすればよいですか?

4

3 に答える 3

2

でコントロールを扱うことは避けますForm Open。からお試しくださいForm Load

Private Sub Form_Load()
    If Not IsNull(Me.OpenArgs) Then
        Me.MyCombo = Me.OpenArgs
        Call MyCombo_AfterUpdate
        'Call DoSomething
    End If
End Sub

バインドされた列の幅は 0 にすることができますが、これは引き続き機能するはずです。

このようなことをするときにコンボで選択された値でフォームがすでに開いている場合は注意してください...

DoCmd.OpenForm "frmJaybob", OpenArgs:= 4

...コンボの値は 4 に変更されません。

Call MyCombo_AfterUpdateから実際には何もしないことに気付くかもしれませんForm Load。その場合は、コードを別のプロシージャに移動MyCombo_AfterUpdateし、新しいプロシージャをMyCombo_AfterUpdateと から呼び出しますForm Load

Private Sub DoSomething()
    ' move your MyCombo_AfterUpdate code here
    MsgBox "DoSomething"
End Sub
于 2013-03-01T20:36:43.943 に答える