• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Setfocus について)

Setfocusについて

このQ&Aのポイント
  • Access2000でVBAを使用している際、テキストボックスに8桁の商品番号を入力する必要があります。しかし、商品番号が8桁でない場合にメッセージボックスを表示するためのコードを実装しても、SetFocus関数が正常に機能しません。他のテキストボックスにフォーカスを移すことはできますが、自分自身にフォーカスを戻す方法が分かりません。解決策をご教示ください。
  • Access2000のVBAで作成しているプログラムで、8桁の商品番号を入力するテキストボックスがあります。商品番号が8桁でない場合には、エラーメッセージを表示するようにしたいと思っています。しかし、SetFocus関数を使用しても、自分自身にフォーカスを戻すことができません。他のテキストボックスにフォーカスを移すことはできますが、元のテキストボックスにフォーカスを戻す方法がわかりません。どのようにすればよいでしょうか?
  • Access2000のVBAを使用して、テキストボックスに8桁の商品番号を入力する必要があります。商品番号が8桁でない場合には、ユーザにエラーメッセージを表示したいと思っています。しかし、SetFocus関数を使用しても、フォーカスを元のテキストボックスに戻すことができません。他のテキストボックスにフォーカスを移すことはできますが、自分自身にフォーカスを戻す方法がわかりません。解決策を教えてください。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 Exitイベントで記述して、 テキスト1.SetFocus の替わりに、 Cancel = True にすればいいと思います。 Private Sub テキスト1_Exit(Cancel As Integer)   Dim Keta As Integer   Keta = Len(テキスト1)   If Keta <> 8 Then     MsgBox "???"     Cancel = True   End If End Sub

noname#12495
質問者

お礼

ありがとうございました。 解決できました。またお願いします。

その他の回答 (1)

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.1

どのイベントに記述されてますか? LostFocusイベントに記述すれば、動作すると思いますが。 AccesのVBAはイベントドブリンですから、記述するイベントによっては思いもよらない動作をします。

noname#12495
質問者

お礼

ありがとうございました。 LostFocusに書いてみたのですが、上手く出来ません。 私の書き方がダメなのかもしれませんね。 また、勉強します。

関連するQ&A