Access2007データベースを使用して個人のライブラリインベントリシステムを作成しています。コードでは、フォームコントロールの.Text
プロパティを参照するときはいつでも、値を変更する場合でも、単にIFステートメントで値をチェックする場合でも、Run-time error '2185': You can't reference a property or method for a control unless the control has the focus
でプロンプトが表示されます。
どうしてこれなの?
.Text
を設定するのは大したことではありませんが、IFステートメントで値をチェックしているとき、複数の条件をチェックしているときにフォーカスを設定できません。
使用する .Value
代わりに-最初にフォーカスを設定する必要はありません。ドキュメントから、たとえば TextBox control (emphasis mine)の場合:
コントロールにフォーカスがある間、Textプロパティには現在コントロールにあるテキストデータが含まれます。 Valueプロパティには、コントロール用に最後に保存されたデータが含まれます。フォーカスを別のコントロールに移動すると、コントロールのデータが更新され、Valueプロパティがこの新しい値に設定されます。 コントロールが再びフォーカスを取得するまで、Textプロパティ設定は使用できません。