こんにちは!
質問なのですが、Accessの入力フォームでエラーチェックをかけてます。
「txtMsg」って名前のテキストボックスを1つ用意してエラーの内容を
反映させてます。チェックの内容ですが、Nullチェックと文字数チェック
・禁止文字チェックをかけてます。
>エラーはちゃんと反映します。SetFocusでカーソルをエラー個所に立て
て修正します。ここからが問題なのですが、エラー個所を修正したママの
状態(修正個所にFocusがある状態)でFキーcmdボタンの「更新」ボタン
を押してもテキストボックスにエラーが出たママなんです。
ちなみにFキーを使用できるようにcmdボタンを12個並べて使っております。
>状況
・Fキーを使用して更新した場合のみエラー表示が消えない。
>たぶんfocusが移動してないからかな?
>Me.事項.SetFocusのような作業が出来ない状況(現状の
>txtBOXの「Enterキー入力動作」を「行を追加」にして
>いる為)で、Fキーを使用しつつ更新出来るようにするには?
・クリックで「更新」ボタンを押すとちゃんと更新される。
ってわけで困ってます。
何かいい方法を知っていらしゃいましたらご教授願います。
'------------------必須項目の未入力チェック-------------------
Me.txtMsg = ""
If IsNull(Me.郵便番号) Or Me.郵便番号 = "" Then
Me.txtMsg = "郵便番号データが未入力です。( ̄▽ ̄;)!!"
Me.郵便番号.SetFocus
Exit Sub
End If
'--------------------図版CD文字数チェック--------------------
strYbn = Len(Me.郵便番号)
If strYbn <> 10 Then
Me.txtMsg = "『〒000-0000』形式にして下さい! (´∞`)"
Me.郵便番号.SetFocus
Exit Sub
End If
No.4ベストアンサー
- 回答日時:
cmdTxtF5クリック前にcmdTxtF5.SetFocus・・・一緒かな?
確認ですが、
F5キー若しくはcmdTxtF5(コマンドボタン名)を直接クリックすることによりcmdTxtF5keydown()を実行したいということですよね。
ということは、
cmdTxtF5クリック時のイベント↓
Private Sub cmdTxtF5_Click()
cmdTxtF5keydown
End Sub
かつ、フォームの「キーボードイベント取得」→「はい」
そして、
Formのキークリック時のイベント↓
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF5 Then
Me.cmdTxtF5.SetFocus 'ここでFocusを移す
cmdTxtF5keydown
End If
End Sub
必要最低限の以上のような設定でテストしてみましたが、当方ではうまく作動しました。(cmdTxtF5keydownはNo.3の回答のものを使用しました。)
再確認ですが、コマンドボタンの名前は「cmdTxtF5」で間違いないですよね。
・・・あっ、一回目の更新は実行できたのだから間違いないか (^ ^;
この回答への補足
こんばんわ!こんな夜遅くまで本当にスミマセン。
私はメールチェックして寝ようかと思っていた所だったので
びっくりです。早速会社で試して結果を報告させて頂きます。
私のような初心者に丁寧かつわかり易いご指導をして頂き本当に
ありがとうございました。
やっぱり失礼だと思い会社にリモートアクセスでFileを転送して
テストしてみました。OKぇぇぇぇぇです。チョット涙が出そうでした。
順調に動作してます。下記の記述で完璧でした。
Select Case KeyCode
Case vbKeyF1
cmd前頁keydown
KeyCode = 0
Case vbKeyF2
KeyCode = 0
Case vbKeyF3
KeyCode = 0
Case vbKeyF4
KeyCode = 0
Case vbKeyF5
If KeyCode = vbKeyF5 Then
Me.cmdTxtF5.SetFocus 'ここでFocusを移す
cmdTxtF5keydown
End If
KeyCode = 0
Case vbKeyF6
本当にありがとうございました。
有料でも教えて頂きたい知識をここまで丁寧に解説して
頂き本当に感謝しております。また利用する機会がありましたら
よろしくお願い致します。
では失礼します。
No.3
- 回答日時:
>実行時エラー'cmdF5'にフォーカスを移動することはできません。
>*ラベルなど、フォーカスを取得できないコントロールです。
>*コントロールの"Visible/可視"プロパティが[No/いいえ]に設定されています。
>*コントロールの"Enabled/使用可能"プロパティが[No/いいえ]に設定されています。
>ちなみに上記指摘のプロパティは全て[Yes/はい]に設定してます。
うぅ~ん・・・
かなり自信ありませんが、SetFocusの前に
Me.Repaint
と、一行入れてみて下さい・・・ダメかな(; ;)
何度も何度もごめんなさい!
やっぱり駄目みたいです。
実行時エラー'2110':
コントロール'cmdF5'にフォーカスを移動することはできません。
*ラベルなど、フォーカスを取得できないコントロールです。
*コントロールの"Visible/可視"プロパティが[No/いいえ]に設定されています。
*コントロールの"Enabled/使用可能"プロパティが[No/いいえ]に設定されています。
↑が出てしまいました。記述の仕方が悪いのでしょうか?
cmdTxtF5はコマンドボタン(更新)です。
txtMsgはエラー内容を表示するテキストボックスです。
Private Sub cmdTxtF5keydown()
Dim intKsn As Integer
Dim lngID As Long
Dim intEnd As Integer
Dim errMoji As String
Me.Repaint
Me.cmdTxtF5.SetFocus
’エラーチェック
'未入力チェック
Me.txtMsg = ""
If IsNull(Me.募集内容) Or Me.募集内容 = "" Then
Me.txtMsg = "募集内容データが未入力です。"
Me.募集内容.SetFocus
Exit Sub
End If
'入力禁止文字チェック(全角空白)
No.2
- 回答日時:
F○に更新を割り当てていると理解しましたが、
F○押下時に
Me.更新ボタン.SetFocus
にて「郵便番号」よりFocusを移動する事ができると思うのですが・・・
>更新後処理にMe.事項.SetFocus等の記述が不可能
何処の更新後なのか、「事項」とは何なのかが解らない為はずしているかもしれませんが・・・
また、いつの時点でエラーチェックをかけているのでしょうか。
もう少し詳細がわかれば、的確なアドバイスが出せるかも知れません・・・・かもですけど・・・(^ ^;
説明不足ですみません。
郵便番号だとわかりにくいと思いますので本文で説明させていただきます。
txtHon(テキストボックス『メモ型』)に本文・cmdF5(コマンドボタン)に「更新」
としております。F5を押したタイミングで更新機能を作動させております。
「事項」とは次項目に移動の意味を込めたものですが自分以外わかりませんよね!
(*_ _)人ゴメンナサイ
>ご指摘通り更新ボタンの変数宣言後の記述をme.txtHon.setfocusから初めて見ました。
一度目の更新の際はエラーも無く動くのですが、修正を行ったあと二回目の更新
を行うと下記のエラーが起こりました。
実行時エラー'cmdF5'にフォーカスを移動することはできません。
*ラベルなど、フォーカスを取得できないコントロールです。
*コントロールの"Visible/可視"プロパティが[No/いいえ]に設定されています。
*コントロールの"Enabled/使用可能"プロパティが[No/いいえ]に設定されています。
ちなみに上記指摘のプロパティは全て[Yes/はい]に設定してます。
せっかく巧く動いたのに(>O<)
No.1
- 回答日時:
>たぶんfocusが移動してないからかな?
本当にこれが原因ならば、単にFocusを移動すれば良いだけでは?
例えば、更新のcmdボタンに・・・
それと、Len("〒000-0000") = 9 ではないでしょうか(「〒,-」込みで)
あと余計なお世話かもしれませんが、strYbnはintegerですよね?
でしたらintYbnの方が後々一見して変数の型が判るので良いのではないでしょうか。stringと勘違いしそうで・・・(^ ^;
お礼が遅くなりスミマセン
ご返答ありがとうございます
>>Me.事項.SetFocusのような作業が出来ない状況<<
現状txtBOXの「Enterキー入力動作」を「行を追加」にして
いるので、更新後処理にMe.事項.SetFocus等の記述が不可能
なんです。どのように回避すればいいのか検討がつかない為、
途方に暮れました。
>>出来れば、更新ボタンに何かの記述を付け加えることで
回避したいのですが、おわかりになりますか?
>それと・・・
まったくもってその通りです。Lenの方はカット&ペーストミス
なんですけど、strYbnはおっしゃる通りinteger型です。
ご忠告ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あるあるbotに投稿したけど採用されなかったあるある募集
あるあるbotに投稿したけど採用されなかったあるあるをこちらに投稿してください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
どこにもフォーカスを当てたくない
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GROUP BYでエラーが発生
-
バッチファイルからのBCP起動に...
-
エクセルマクロで指定範囲内の...
-
SQLのエラー(~付近に不適切な...
-
SQLServerのエラー1069について
-
sqlで文字列を最後に追加したい
-
アクセスの質問です。
-
Oracle 8i コンマ(,)を含むデ...
-
クエリの存在チェック
-
エクセルのグループボックス枠...
-
@@ERRORと@@ROWCOUNT併用について
-
PostgreSqlでFunctionの作成に...
-
SQLサーバー接続 特定のPCがWin...
-
ACCESSからのODBC接続のみ応答...
-
単純な質問です
-
Excel-VBAの「しばらくお待ちく...
-
Buffalo "Terastation"にMySQL...
-
Access2010 accdbのエラー「ODB...
-
ユーザー定義関数内でのsp_exec...
-
別サーバーのDB同士を結合する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Oracle 8i コンマ(,)を含むデ...
-
SQLのエラー(~付近に不適切な...
-
PostgreSqlでFunctionの作成に...
-
エクセルマクロで指定範囲内の...
-
ACCESS ADOでupdateが効かない
-
ACCESSで作成したアプリケーシ...
-
バッチファイルからのBCP起動に...
-
GROUP BYでエラーが発生
-
オブジェクト名 '<table>' が無...
-
エクセルからSQLサーバー ...
-
Access2000環境に対応するMid関...
-
sqlで文字列を最後に追加したい
-
ACCESS2000ディスクまたはネッ...
-
ストアドの戻り値(配列)について
-
@@ERRORと@@ROWCOUNT併用について
-
Accessのレポートが新規作成で...
-
SQLServerのエラー1069について
-
SQLserverのIF文について
-
クエリの存在チェック
-
全ストアドを対象に文字列を置...
おすすめ情報