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ランキング
-
ExcelのComboboxでマウスのスク...
-
スクロールバーをVBAで操作したい
-
Accessのメニューバーを消したい!
-
Access サブフォームでの選択行...
-
ACCESSでVBAから選択クエリの抽...
-
googleフォームでインストール...
-
access サブフォームにリストを...
-
access別のテーブルを参照して...
-
Access 複数フォームを...
-
COUNTIFのやり方を教えてくださ...
-
.flex-direction プロパティは...
-
Accessのコンボボックスでリス...
-
Access2010 レコードの更新日付...
-
未審査請求包袋抽出表作成とは...
-
Accessフォームが入力できません。
-
X-Ripperというフリーウェアに...
-
ACCSESS2013VBA フォームのレコ...
-
Accessでレコードの複製
-
コンボボックス全ての値を取得...
-
access2010 特定文字を含むレコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのComboboxでマウスのスク...
-
スクロールバーをVBAで操作したい
-
Access2000 フォーム表示位置が...
-
ACCESS フォームのサイズ調整
-
access 最大化した時の画面の...
-
エクセル上に画像を貼り付けて...
-
実行エラー'424' ????
-
Accessで任意のフォーム以外直...
-
ACCESSアクションマクロでイン...
-
マクロボタンが勝手に飛び回る
-
ACCESS VBEが勝手に起動します
-
access 終了時に「test」とい...
-
エクセルのVBAでマクロ実行...
-
ワークシート上に検索用のボッ...
-
Accessボタンで並び替え
-
Accessのメニューバーを消したい!
-
「問題が発生したため、MicroSo...
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
-
ACCESSでVBAから選択クエリの抽...
おすすめ情報