ACCESS2000のフォームのことで質問します。
(実際のフォームは項目が複雑なので、簡単な例にして説明します。)
フォーム上にテキストボックスTB1とTB2があり、共に必須入力項目です。
TB1_Exit内でisnull(TB1)のときMsgboxでエラー表示後TB1.setfocusしているのですがTB2にタブ順で移動してしまいます。
また、フォーム開いてすぐに閉じるときにもTB1_Exitが働いてしまい上記エラーが発生してしまいます。
質問1>Exitイベントから自分自身にSetfocusする方法はありますか?
質問2>フォームを閉じるときはTB1_Exitをさせない方法はありますか?
質問3>これらの問題はTB1の入力チェックをTB1_Exitでしていることが問題なのだと思うのですが、他にどういう方法がありますか?チェックさせるためのボタンを用意してそのClickイベントでチェックさせるしかないでしょうか。
早急に完成させなければならず、大変困っております。どうかよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
MSAccess2000での開発経験は少ないですが、MSAccess97までなら全バージョンで
経験があります。Accessとは結構長いお付き合いです。
質問1>Exitイベントから自分自身にSetfocusする方法はありますか?
残念ながら無いはずです。
質問2>フォームを閉じるときはTB1_Exitをさせない方法はありますか?
これも方法が無いはずです。
質問3>これらの問題はTB1の入力チェックをTB1_Exitでしていることが問題なのだと思うのですが、他にどういう方法がありますか?チェックさせるためのボタンを用意してそのClickイベントでチェックさせるしかないでしょうか。
そのとおりです。
なお、ヘルプを見ると各項目の BeforeUpdate イベントでチェック
できるように見えますが、実際には Cancel を True にしても
素通りしてしまいますので、強制チェック機能として使用できません。
※Access95まではヘルプどおりに使用できました。
よって、登録ボタンなどや、 連結フォームでの レコードの BeforeUpdate
イベントでチェックするしか方法はありません。
以上
回答ありがとうございます。
経験の長い方からの回答で、大変参考になりました。
やはり思った通り、できないんですね・・・そうだとは思ったんですが残念。
「連結フォームでのレコードのBeforeUpdate」は???ですが、全部の入力が済んでからチェック用のボタンを押し、その中で判定させることにしました。
明日さっそくそのようにやってみます。
どうもありがとうございました。
No.2
- 回答日時:
コントロールの数がそんなに無ければ
Sub TB1_Check()
If IsNull(Me.TB1) Then
Me.TB1.SetFocus
Exit Sub
End If
End Sub
という関数を作り、他のコントロールのSetFocus時にTB1_Check関数を実行すれば希望の動作になると思います。
回答ありがとうございます。
>他のコントロールのSetFocus時にTB1_Check関数を実行
TB2_GotFocus内でTB1_Checkを実行・・・ということと解釈しましたが。
とりあえず#1の方のお礼に書いた方法に、今日1日かけて変更しました。
でも有効な方法だと思いますので、参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:12
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- JavaScript ラジオボタンによるフォームの開閉を行いたい 3 2022/03/31 21:30
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- Excel(エクセル) セルの計算の上限値を設定し、残りを別のセルに表示させる 7 2022/06/17 13:12
- UNIX・Linux bash環境でのエラー対応をお願い致します。 1 2022/11/26 17:41
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Excel(エクセル) 複数の同じ様式のエクセルデータの任意セルへの入力について 3 2022/04/27 15:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「問題が発生したため、MicroSo...
-
エクセル上に画像を貼り付けて...
-
スクロールバーをVBAで操作したい
-
血から鉄って作れないですか?
-
ACCESS フォームで抽出したデー...
-
Accessでフォームに自動入力し...
-
インデックスまたは主キーにはn...
-
【AccessVBA】レコードセットOp...
-
エクセルで、抽出したデータだ...
-
アクセスでコードを入れると名...
-
Accessのコンボボックスでリス...
-
COUNTIFのやり方を教えてくださ...
-
ACCESSでVBAから選択クエリの抽...
-
Accessのコンボボックスの”すべ...
-
Access チェックボックスを利用...
-
エクセルで色の付いたセルを抽...
-
Excel 文字列から6桁の数値の抽出
-
ファイルメーカーで重複してイ...
-
ACCESS 複数のフォームから同一...
-
サブフォームが見えなくなる。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのComboboxでマウスのスク...
-
スクロールバーをVBAで操作したい
-
Access2000 フォーム表示位置が...
-
実行エラー'424' ????
-
ACCESS フォームのサイズ調整
-
Accessで任意のフォーム以外直...
-
エクセル上に画像を貼り付けて...
-
access 最大化した時の画面の...
-
エクセルのVBAでマクロ実行...
-
ACCESSアクションマクロでイン...
-
ワークシート上に検索用のボッ...
-
マクロボタンが勝手に飛び回る
-
「問題が発生したため、MicroSo...
-
Accessで起動時にフォームが開...
-
ACCESS VBEが勝手に起動します
-
Exitイベントから自分自身のコ...
-
Access サブフォームでの選択行...
-
エクセルで、抽出したデータだ...
-
ACCESSでVBAから選択クエリの抽...
-
前のレコードの値を自動で入れたい
おすすめ情報