2

ドロップダウン リストの選択に基づいて入力されるレコードセットを含むアクセス フォームがあります。クエリをテストしましたが、変数データを直接設定すると確実に機能します。しかし、私はそれを機能させることができないようです。非表示のテキスト ボックスの値を設定して、その方法でデータにアクセスできるかどうかを確認しようとしましたが、実行時エラーが引き続き発生します: 2185 'コントロールのプロパティまたはメソッドを参照できませんコントロールにフォーカスがない限り。

サブルーチンのコードは次のとおりです。

Private Sub pickdate_AfterUpdate()
  Me![pickdate].SetFocus
  Me![tb_HiddenDate] = Me![pickdate].Text
  Forms!mainForm!subForm.Requery
End Sub

余談ですDebug.Print(Me![pickdate])が、そうすると、選択したアイテムのインデックスが返されます。Me![pickdate].Value についても同じです。Me![pickdate].Text は、pickdate の AfterUpdate ハンドラーでも例外をスローします。

私はこのスレッドを調べました: MS Access: An error in vba of my formですが、この場合は機能しません。私は今、これが期待どおりに機能しない理由を理解しようとしています。他に提案はありますか?

4

1 に答える 1

2

After Update 手順を一時的に変更して、何を扱っているかを確認します。おそらくpickdate2 つの列が含まれます。最初の列は数字です。2番目は取得したいテキストです。

Private Sub pickdate_AfterUpdate()
Dim i As Long
Debug.Print "pickdate Value: " & Me![pickdate]
For i = 0 To (Me.pickdate.ColumnCount - 1)
    Debug.Print "Column " & i, Me.pickdate.Column(i)
Next
'Forms!mainForm!subForm.Requery
End Sub

イミディエイト ウィンドウ ( Ctrl+ g) に出力が表示されます。

于 2013-01-17T17:28:16.983 に答える