• ベストアンサー

Access2002_メソッドまたはデータメンバが見つかりません

社員情報を入力・変更していくためのフォームがあります。 そのフォームが立ち上がる際  ・新規入力画面を表示させる  ・フォーカスを[データ入力更新日]テキストボックスに合わせておく という操作をさせたく下記のようなコードを書きました。 Private Sub Form_Open(Cancel As Integer)  DoCmd.GoToRecord Record:=acNewRec  Me.txt_データ入力更新日.SetFocus End Sub フォームを立ち上げようとすると「.txt_データ入力更新日」が反転されタイトルで書いたエラーメッセージが表示されます。 試しに他のテキストボックスにフォーカスがいくよう変更してみるとエラーは起こらず 指定したテキストボックスにフォーカスが置かれてフォームが開きました。 [txt_データ入力更新日]の名前はプロパティからコピペしているので間違っておりません。 名前が違っている以外にどんなことが考えられるでしょうか? よろしくお願い致します。 テキストボックスの名前は間違いありません。

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

> 名前が違っている以外にどんなことが考えられるでしょうか? ・・・すみません、どうしても名前ではないかと思えてしまいます(汗) とりあえず、「名前の間違いかそうでないか」を確実に切り分けるために、 以下のコード変更を行った上で、エラーメッセージを再確認してみて下さい。 <現在> Me.txt_データ入力更新日.SetFocus <修正> Me.txt_データ入力更新日.SetFocus ※「Me」の後を「.(ピリオド)」から「!(エクスクラメーションマーク)」に変更 もしもこれで「実行時エラー'2465':指定した式で参照されている 'txt_データ 入力更新日' フィールドが見つかりません。」というエラーが返されれば 名前の間違い、それ以外なら別の理由、と切り分けできます。 (新たに表示されるエラー内容が、解決のヒントにもなると思います) ※この切り分けがすぐにできるように、コントロールの参照時は「!」を、   プロパティなどの参照時は「.」を、と使い分けることをお勧めします。 なお、今回ご質問の件からすると余談になりますが、そのフォームで 既存のデータを表示する必要がないようでしたら、展開時に新規レコードに 移動するよりも、フォームのプロパティシートで、『データ』タブの『データ 入力用』を「はい」に設定した方が安全かと思いますので、ご参考まで。 (現状では、レコード移動ボタンやShiftキー+Tabキーなどで、既存レコードへの  移動が可能になってしまっていると思いますので・・・)

picopico_7
質問者

お礼

アドバイスありがとうございました。 DexMachinaさんのアドバイス通り ピリオドエクスクラメーションマークへの変更でエラーも起こらず フォーカスが望むテキストボックスへ現れました!! 今後はピリオドエクスクラメーションマークをきちんと使い分けるようにしていこうと思います。 本当にありがとうございましたm(_ _)m

関連するQ&A