- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Setfocus について)
Setfocusについて
このQ&Aのポイント
- Access2000でVBAを使用している際、テキストボックスに8桁の商品番号を入力する必要があります。しかし、商品番号が8桁でない場合にメッセージボックスを表示するためのコードを実装しても、SetFocus関数が正常に機能しません。他のテキストボックスにフォーカスを移すことはできますが、自分自身にフォーカスを戻す方法が分かりません。解決策をご教示ください。
- Access2000のVBAで作成しているプログラムで、8桁の商品番号を入力するテキストボックスがあります。商品番号が8桁でない場合には、エラーメッセージを表示するようにしたいと思っています。しかし、SetFocus関数を使用しても、自分自身にフォーカスを戻すことができません。他のテキストボックスにフォーカスを移すことはできますが、元のテキストボックスにフォーカスを戻す方法がわかりません。どのようにすればよいでしょうか?
- Access2000のVBAを使用して、テキストボックスに8桁の商品番号を入力する必要があります。商品番号が8桁でない場合には、ユーザにエラーメッセージを表示したいと思っています。しかし、SetFocus関数を使用しても、フォーカスを元のテキストボックスに戻すことができません。他のテキストボックスにフォーカスを移すことはできますが、自分自身にフォーカスを戻す方法がわかりません。解決策を教えてください。
- みんなの回答 (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
その他の回答 (1)
- PAPA0427
- ベストアンサー率22% (559/2488)
回答No.1
どのイベントに記述されてますか? LostFocusイベントに記述すれば、動作すると思いますが。 AccesのVBAはイベントドブリンですから、記述するイベントによっては思いもよらない動作をします。
質問者
お礼
ありがとうございました。 LostFocusに書いてみたのですが、上手く出来ません。 私の書き方がダメなのかもしれませんね。 また、勉強します。
お礼
ありがとうございました。 解決できました。またお願いします。