こんにちは!
質問なのですが、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

このQ&Aに関連する最新のQ&A

A 回答 (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」で間違いないですよね。
・・・あっ、一回目の更新は実行できたのだから間違いないか (^ ^;

この回答への補足

こんばんわ!こんな夜遅くまで本当にスミマセン。
私はメールチェックして寝ようかと思っていた所だったので
びっくりです。早速会社で試して結果を報告させて頂きます。
私のような初心者に丁寧かつわかり易いご指導をして頂き本当に
ありがとうございました。

補足日時:2001/10/24 00:05
    • good
    • 0
この回答へのお礼

やっぱり失礼だと思い会社にリモートアクセスで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
本当にありがとうございました。
有料でも教えて頂きたい知識をここまで丁寧に解説して
頂き本当に感謝しております。また利用する機会がありましたら
よろしくお願い致します。
では失礼します。

お礼日時:2001/10/24 01:20

>実行時エラー'cmdF5'にフォーカスを移動することはできません。


>*ラベルなど、フォーカスを取得できないコントロールです。
>*コントロールの"Visible/可視"プロパティが[No/いいえ]に設定されています。
>*コントロールの"Enabled/使用可能"プロパティが[No/いいえ]に設定されています。
>ちなみに上記指摘のプロパティは全て[Yes/はい]に設定してます。

うぅ~ん・・・
かなり自信ありませんが、SetFocusの前に

Me.Repaint

と、一行入れてみて下さい・・・ダメかな(; ;)
    • good
    • 0
この回答へのお礼

何度も何度もごめんなさい!
やっぱり駄目みたいです。

実行時エラー'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
'入力禁止文字チェック(全角空白)

お礼日時:2001/10/23 19:00

F○に更新を割り当てていると理解しましたが、


F○押下時に

Me.更新ボタン.SetFocus

にて「郵便番号」よりFocusを移動する事ができると思うのですが・・・

>更新後処理にMe.事項.SetFocus等の記述が不可能

何処の更新後なのか、「事項」とは何なのかが解らない為はずしているかもしれませんが・・・
また、いつの時点でエラーチェックをかけているのでしょうか。
もう少し詳細がわかれば、的確なアドバイスが出せるかも知れません・・・・かもですけど・・・(^ ^;
    • good
    • 0
この回答へのお礼

説明不足ですみません。

郵便番号だとわかりにくいと思いますので本文で説明させていただきます。

txtHon(テキストボックス『メモ型』)に本文・cmdF5(コマンドボタン)に「更新」
としております。F5を押したタイミングで更新機能を作動させております。
「事項」とは次項目に移動の意味を込めたものですが自分以外わかりませんよね!
(*_ _)人ゴメンナサイ

>ご指摘通り更新ボタンの変数宣言後の記述をme.txtHon.setfocusから初めて見ました。

一度目の更新の際はエラーも無く動くのですが、修正を行ったあと二回目の更新
を行うと下記のエラーが起こりました。

実行時エラー'cmdF5'にフォーカスを移動することはできません。
*ラベルなど、フォーカスを取得できないコントロールです。
*コントロールの"Visible/可視"プロパティが[No/いいえ]に設定されています。
*コントロールの"Enabled/使用可能"プロパティが[No/いいえ]に設定されています。
ちなみに上記指摘のプロパティは全て[Yes/はい]に設定してます。
せっかく巧く動いたのに(>O<)

お礼日時:2001/10/23 17:29

>たぶんfocusが移動してないからかな?



本当にこれが原因ならば、単にFocusを移動すれば良いだけでは?
例えば、更新のcmdボタンに・・・

それと、Len("〒000-0000") = 9 ではないでしょうか(「〒,-」込みで)
あと余計なお世話かもしれませんが、strYbnはintegerですよね?
でしたらintYbnの方が後々一見して変数の型が判るので良いのではないでしょうか。stringと勘違いしそうで・・・(^ ^;
    • good
    • 0
この回答へのお礼

お礼が遅くなりスミマセン
ご返答ありがとうございます

>>Me.事項.SetFocusのような作業が出来ない状況<<
現状txtBOXの「Enterキー入力動作」を「行を追加」にして
いるので、更新後処理にMe.事項.SetFocus等の記述が不可能
なんです。どのように回避すればいいのか検討がつかない為、
途方に暮れました。
>>出来れば、更新ボタンに何かの記述を付け加えることで
回避したいのですが、おわかりになりますか?

>それと・・・
まったくもってその通りです。Lenの方はカット&ペーストミス
なんですけど、strYbnはおっしゃる通りinteger型です。
ご忠告ありがとうございます。

お礼日時:2001/10/23 15:08

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QIf 参加賞 = 1 Then '←

Access2003 Windows-xpを使っています。
フォーム上に、複数のテキストボックスがあり、そこにコードを書いてあるのですが、、、
現在、「参加賞」のテキストボックスに「1」を入力したとき(If 参加賞 = 1 Then)
というようになっていますが、ここを"「0以外の数値」を入力した時"というコードにしたいのですが、どのように書いたらよいのでしょうか?
すみませんが、どなたか教えてください。
宜しくお願い致します。
-----------------------------------------
Private Sub 参加賞_AfterUpdate()

If 参加賞 = 1 Then

'他を0にする
i参加賞 = 0
F賞 = 0
E賞 = 0
D賞 = 0
i提案賞 = 0
i努力賞 = 0
idea賞 = 0

End If
End Sub
---------------------------

Aベストアンサー

0以外なら
If 参加賞 <>1

0より大きい数値なら
If 参加賞 >0

で、いかがですか?

Q 同じ項目に自動でチェックが入るようにできませんか?

http://oshiete1.goo.ne.jp/qa4889454.html
で回答いただいた者です。

おかげさまで少しだけ進展いたしました。
根本的には完成していないのですが…。
取り急ぎ教えていただけたら感謝です。よろしくお願いいたします。

データのインポートを行い、商品名ごとの一覧ができました。

1レコードにつき1商品が対応しており、
みかん
 Aさん
りんご
 Aさん
みかん
 Bさん
みかん
 Cさん
りんご
 Cさん
りんご
 Dさん
という感じになっています。

それにレイアウトで「商品名の小計」というパートを入れたところ、
プレビューで

みかん
 Aさん
 Bさん
 Cさん
りんご
 Aさん
 Cさん
 Dさん

と見ることができるようになりました。

しかし商品は200個くらいあるのですが、
実際に印刷をかけたい商品はその3割くらいなんです。

で、検索できるようにレイアウトでミカンの横にチェックボックスをつけました。
しかしこのままではみかんを買った人が50人いれば、
50のレコードにチェックをつけないといけないですよね。

ミカンの購入者のうち一人だけにチェックをつけたら、他のミカン購入者にもチェックが入るようになにか設定する方法はないでしょうか。

よろしくお願いいたします。

http://oshiete1.goo.ne.jp/qa4889454.html
で回答いただいた者です。

おかげさまで少しだけ進展いたしました。
根本的には完成していないのですが…。
取り急ぎ教えていただけたら感謝です。よろしくお願いいたします。

データのインポートを行い、商品名ごとの一覧ができました。

1レコードにつき1商品が対応しており、
みかん
 Aさん
りんご
 Aさん
みかん
 Bさん
みかん
 Cさん
りんご
 Cさん
りんご
 Dさん
という感じになっています。

それにレイアウトで「商品名の小計」...続きを読む

Aベストアンサー

印刷したい商品は50個で印刷しない商品は何個あるのですか?
検索条件50個入力は結構大変かも。。やはり商品マスタのようなテーブルを作った方がいいかも知れません。すぐ出来ます。
これが出来ても50個のチェック付けは必要ですが。

Q<ファイル3>を開いた時に、<ファイル2><ファイル1>から自動的に書き込ませたい

ファイルメーカーPro6 for Winを、1カ月前に
始めた初心者です。
OS:WindowsXP

例えば、
<ファイル1>
会社No 会社名  住所   電 話 
-----------------------------
 1    AAA   ●●●  ○○○ 
 2    BBB  ▲▲▲  △△△ 

<ファイル2>
車輌No 会社名 会社No  車種
-------------------------------
01-11  AAA    1    普通車
11-23  AAA    1     軽自動車
78-56  BBB    2     普通自車

<ファイル3>
車輌No 会社No 会社名   住所    電 話   車種
-----------------------------------------------
01-11   1     AAA    ●●●   ○○○   普通車
11-23   1     AAA    ●●●   ○○○   軽自動車
78-56   2     BBB    ▲▲▲   △△△    普通車

リレーションで<ファイル3>と<ファイル1>をキー「会社No」で結び、
<ファイル3>と<ファイル2>をキー「会社No」で結ぶ。
<ファイル3>を開いた時に、<ファイル2>の車輌Noを基に、
車輌No順に上記の<ファイル3>のように
自動的に<ファイル2>と<ファイル1>から<ファイル3>に
書き込ます(コピー)ようにするには
どうすれば、よろしいでしょうか。
教えて下さい。

ファイルメーカーPro6 for Winを、1カ月前に
始めた初心者です。
OS:WindowsXP

例えば、
<ファイル1>
会社No 会社名  住所   電 話 
-----------------------------
 1    AAA   ●●●  ○○○ 
 2    BBB  ▲▲▲  △△△ 

<ファイル2>
車輌No 会社名 会社No  車種
-------------------------------
01-11  AAA    1    普通車
11-23  AAA    1     軽自動車
78-56  BBB    2     普通自車

<ファイル3>
...続きを読む

Aベストアンサー

レイアウトモードでメニューから「新規レイアウト」を選べば新しいレイアウトを作成できます。

現在のレイアウトに少し手を加えるのであれば
ファイル3のフィールドと同じフィールドをファイル2に
フィールド定義してからレイアウト→レイアウトの複製
で作ると簡単です。
このあたりはマニュアルにも載っていますので熟読を
おすすめします。
ファイルメーカーのマニュアルとヘルプはかなりよく
出来ていますよ。

Q郵便番号と市外局番のデータ

住所録を作りたいのですが、郵便番号・市外局番・県市町村名の一覧データがダウンロード出来るサイトってないでしょうか?
郵便局(http://www.post.yusei.go.jp/)のデータは市外局番がなかったので。
ヨロシクお願いします。

Aベストアンサー

これはどうでしょうか?

参考URL:http://www1.sphere.ne.jp/yjk/postal/

Qサブフォームのsetfocus

ac2000/win2000
こんにちは。
以下のようにサブフォームのテキストボックスにsetfocusしようと思いコードを書きました。

Me.SF1.Form.コード.SetFocus
Forms!コード更新F!SF1.Form!コード.SetFocus
2つ書いたんですが、2つともエラーはでないものの
移動することが出来ません。

どなたか宜しくお願いします。

Aベストアンサー

以下の2行のコードで、ご希望のことが可能だと思います。

Me!SF1.SetFocus
Me!SF1.Form!コード.SetFocus

以下、解説です。

SetFocus は、アクティブフォームのコントロールにしか実行できません。
(HELP で確認してください。)

例えば、メインフォームのコマンドボタンでコードを実行させた場合、メインフォームがアクティブフォームになります。

そのため、まず1行目のコードでサブフォームコントロールにフォーカスを移動してこちらをアクティブにしてから、再度サブフォームのコントロールに SetFocus する必要があります。


人気Q&Aランキング

おすすめ情報