ACCESS2000のフォームのことで質問します。
(実際のフォームは項目が複雑なので、簡単な例にして説明します。)

フォーム上にテキストボックスTB1とTB2があり、共に必須入力項目です。
TB1_Exit内でisnull(TB1)のときMsgboxでエラー表示後TB1.setfocusしているのですがTB2にタブ順で移動してしまいます。
また、フォーム開いてすぐに閉じるときにもTB1_Exitが働いてしまい上記エラーが発生してしまいます。

質問1>Exitイベントから自分自身にSetfocusする方法はありますか?

質問2>フォームを閉じるときはTB1_Exitをさせない方法はありますか?

質問3>これらの問題はTB1の入力チェックをTB1_Exitでしていることが問題なのだと思うのですが、他にどういう方法がありますか?チェックさせるためのボタンを用意してそのClickイベントでチェックさせるしかないでしょうか。

早急に完成させなければならず、大変困っております。どうかよろしくお願いいたします。

A 回答 (2件)

MSAccess2000での開発経験は少ないですが、MSAccess97までなら全バージョンで


経験があります。Accessとは結構長いお付き合いです。

質問1>Exitイベントから自分自身にSetfocusする方法はありますか?

残念ながら無いはずです。

質問2>フォームを閉じるときはTB1_Exitをさせない方法はありますか?

これも方法が無いはずです。

質問3>これらの問題はTB1の入力チェックをTB1_Exitでしていることが問題なのだと思うのですが、他にどういう方法がありますか?チェックさせるためのボタンを用意してそのClickイベントでチェックさせるしかないでしょうか。

そのとおりです。

なお、ヘルプを見ると各項目の BeforeUpdate イベントでチェック
できるように見えますが、実際には Cancel を True にしても
素通りしてしまいますので、強制チェック機能として使用できません。
※Access95まではヘルプどおりに使用できました。

よって、登録ボタンなどや、 連結フォームでの レコードの BeforeUpdate
イベントでチェックするしか方法はありません。

以上
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
経験の長い方からの回答で、大変参考になりました。
やはり思った通り、できないんですね・・・そうだとは思ったんですが残念。
「連結フォームでのレコードのBeforeUpdate」は???ですが、全部の入力が済んでからチェック用のボタンを押し、その中で判定させることにしました。
明日さっそくそのようにやってみます。
どうもありがとうございました。

お礼日時:2001/10/12 00:16

コントロールの数がそんなに無ければ



Sub TB1_Check()

If IsNull(Me.TB1) Then
  Me.TB1.SetFocus
  Exit Sub
End If

End Sub

という関数を作り、他のコントロールのSetFocus時にTB1_Check関数を実行すれば希望の動作になると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
>他のコントロールのSetFocus時にTB1_Check関数を実行
TB2_GotFocus内でTB1_Checkを実行・・・ということと解釈しましたが。
とりあえず#1の方のお礼に書いた方法に、今日1日かけて変更しました。
でも有効な方法だと思いますので、参考にさせていただきます。

お礼日時:2001/10/12 23:35

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

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

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

Qアクセス検索フォーム【大項目→中項目→小項目と絞り込みながら検索】する方法を教えてください。

アクセス初心者です。
このサイトや手持ちのテキスト等でしばらく調べてがんばってみましたが、いろいろ試した不要なデータであふれかえってしまい拉致があかず、私が初心者であることからアクセス構築の考え方そのものにも不安があり、不勉強でお恥ずかしいのですがご質問させていただくことにしました。
お詳しい方ご教授願います。

やりたいことは、在庫管理のようなことで該当する在庫がいまどこにおいてあるのかを検索フォームを使って検索できるようにしたいのです。

在庫は大項目、中項目、小項目と分類しております。

検索フォームでコンボボックスなどを3つ配置し、大項目を一つ目のコンボボックスなどから選ぶと、次の二つ目のコンボボックスからは選んだ大項目から該当する中項目のリストが自動で選べ、中項目を選ぶと三つ目のコンボボックスからは選んだ中項目に該当する小項目のリストが自動で選べるような形にしたいと思っています。

大項目表テーブル
1 大項目1
2 大項目2
3 大項目3
というものを作って、

大項目1の中項目表テーブル
11 中項目A
12 中項目B
13 中項目C   このような中項目表テーブルは大項目1~3で3つ。
さらに、

中項目Aの小項目表テーブル
21 小項目あ
22 小項目い
23 小項目う   このような小項目表テーブルは中項目A~Cで9つ。

一応上記のような表は用意しました。


何年か前にマイクロソフトのMOS試験のアクセス2000には合格しましたが、それ以来アクセスをあまり触っておらず、いよいよ必要に背回れて困ってしまいました。不勉強で申し訳ありませんがよろしくお願いします。

アクセス初心者です。
このサイトや手持ちのテキスト等でしばらく調べてがんばってみましたが、いろいろ試した不要なデータであふれかえってしまい拉致があかず、私が初心者であることからアクセス構築の考え方そのものにも不安があり、不勉強でお恥ずかしいのですがご質問させていただくことにしました。
お詳しい方ご教授願います。

やりたいことは、在庫管理のようなことで該当する在庫がいまどこにおいてあるのかを検索フォームを使って検索できるようにしたいのです。

在庫は大項目、中項目、小項目...続きを読む

Aベストアンサー

この辺を参考に。
■コンボボックス作成の応用講座-1:SampleFile192
http://www.accessclub.jp/samplefile/samplefile_192.htm
■コンボボックス作成の応用講座-2:SampleFile193
http://www.accessclub.jp/samplefile/samplefile_193.htm

Qアクセス:フォーム入力:【大項目→中項目への絞りこみ入力】方法を教えてください。

アクセス初心者です。よろしくお願いします。
【やりたいこと:次のような大項目→中項目への絞りこみ入力】
フォームの入力で、大項目をリストで選ぶと、次に小項目のリストが自動で出て入力できるようにしたい。

◆まず、テーブルで「大項目コード」表があります。
  1  A
  2  B
  3  …
◆別のテーブルで、
「Aの小項目」表
 11  ○ 
 12  × 
 13  △  
 
「Bの小項目」表
 21  ●
 23  ■
 24  ▲
というようなものがあります。

そこで、フォームで「大項目」フィールドに「1」(=A)を入力すると「小項目」フィールドに自動でコンボボックスのようなもので「○、×、△」がリストが出てコード番号(11,12,13)が入力できる、同様に「大項目」に「2」(=B)と入力するとリスト「●、■、▲」で選んで入力したいのです。

私が初心者であることから、上記のようなアクセス構築の考え方そのものも邪道なものかどうか、不安があります。
要は、【大項目→中項目への絞りこみ入力】ができればいいのです。できますなら、できるだけシンプルな方法を教えてくだされば幸いです。
よろしくお願いいたします。

アクセス初心者です。よろしくお願いします。
【やりたいこと:次のような大項目→中項目への絞りこみ入力】
フォームの入力で、大項目をリストで選ぶと、次に小項目のリストが自動で出て入力できるようにしたい。

◆まず、テーブルで「大項目コード」表があります。
  1  A
  2  B
  3  …
◆別のテーブルで、
「Aの小項目」表
 11  ○ 
 12  × 
 13  △  
 
「Bの小項目」表
 21  ●
 23  ■
 24  ▲
というようなものがあります。

そこで、...続きを読む

Aベストアンサー

コンボボックスのプロパティは大体このままで大丈夫であると思います。

me.コンボ2.requeryについては

2番目のコンボボックスのプロパティのイベントのタブの変更時のところに何か今入っていたらそれを選んで消してください。 そのあとフォーカスを変更時に充てると、▼と・・・という四角が出てきますので、・・・のほうを選択して「コードビルダ」を選んでください。
そうすると
Private Sub コンボ1_Change()

End Sub

と出てきますので、その間に
Private Sub コンボ1_Change()
me.コンボ2.requery
End Sub

と書いて画面を閉じていただければ大丈夫です。

最初のコンボボックスの名前= コンボ1
2番目のコンボボックスの名前= コンボ2

それで試してみてください。 
説明が下手で申し訳ありません。

QAccess チェックボックスでチェックしたデータのみフォームで表示

いつもお世話になっております。
またも躓いてしまいました。宜しくお願い致します。

フォーム上でチェックボックスにチェックが入ったデータを、違うフォームで詳細表示させる処理が出来ずにいます。
手順としては
(1)検索用フォーム「処理検索」で、「処理番号」または「件名」テキストボックスに条件を入力し、検索実行ボタンで検索開始
(2)「詳細表示」フォームに、(1)で検索した結果が、フォームビューで表示。その際、フォームの形式は、フォームヘッダーに「詳細表示」ボタンと、各データの項目名が置いてあり、詳細にチェックボックス・処理番号・年月日・件名のテキストボックスが置いてあります。
☆簡易図☆
[詳細表示]←ボタン
 詳細表示      処理番号  年月日 件名
--------------------------
[チェックボックス]|[処理番号]|[年月日]|[件名]

(3)データを詳細表示したいものにチェックボックスでチェックマークを入れ(運用上のルールで1つ以上は選ばない事になっています)、詳細表示ボタンをクリックすると、チェックを入れたデータのみ、さらに詳しい「処理票 詳細情報」フォームが立ち上がる

「詳細表示」フォームから「処理票 詳細情報」フォームへ展開するにあたり、「Q詳細表示検索」クエリを作成し、チェックボックスの判定をするようにすれば良いのかと思ったので、下記のように作ってみたのですが、うまく展開できませんでした。

今回利用したもの
☆テーブル☆
・メインデータ(詳細なデータが入っている)
・詳細表示(チェックボックス及び、処理番号・年月日・件名が入っている。メインデータの処理番号とリレーション)

☆クエリ☆
・Q詳細表示検索
(詳細表示テーブルから「チェックボックス」と、他の項目はメインデータテーブルから必要分入っています。)

☆フォーム☆
・F処理検索(処理番号・件名をあいまい検索で検索できるようにしてある)
・詳細表示(F処理検索の結果が、チェックボックス・処理番号・発生日・件名の項目でデータを一覧表示する)
・処理票 詳細情報(もっと詳しい情報を表示・項目数だと30項目程表示しています)

☆マクロ☆
・詳細表示
フォーム名:処理票 詳細情報
ビュー:フォームビュー
フィルタ名:Q 詳細表示検索

以上、宜しくお願い致します。

いつもお世話になっております。
またも躓いてしまいました。宜しくお願い致します。

フォーム上でチェックボックスにチェックが入ったデータを、違うフォームで詳細表示させる処理が出来ずにいます。
手順としては
(1)検索用フォーム「処理検索」で、「処理番号」または「件名」テキストボックスに条件を入力し、検索実行ボタンで検索開始
(2)「詳細表示」フォームに、(1)で検索した結果が、フォームビューで表示。その際、フォームの形式は、フォームヘッダーに「詳細表示」ボタンと、各データの項目名が...続きを読む

Aベストアンサー

「詳細表示」を、フォームヘッダーに設置し、チェックボックスを作って、レコード?を、選択する理由は何でしょか?
(1つしか選択しないものなら、テーブル化するのも、変だし、非連結コントロールだと、機能するはずも無く・・・)

「詳細表示」を、フォームの詳細に配置、フォーム起動のフィルタに、カレントレコードのインデックスをキーにポップアップでフォームを起動させた方が、早いと思うけど・・・

Qフォームに文字が記憶されない・・・ツール→フォームチェック済み

windows XPを使っています。
最近フォームに記憶されなくなれました。どんな原因がありますか?
メモリなどは1G積んでいるのでOKです。
ツールのフォームの欄にはチェックが入っています。ご始動お願いします。

Aベストアンサー

> 最近フォームに記憶されなくなれました。

何のフォームでしょう?
・自作プログラム
・IEで表示される入力フォーム


> ツールのフォームの欄にはチェックが入っています。

IEメニューの[ツール]-[インターネットオプション]
「インターネットオプション」ダイアログ
「コンテンツ」タブ
「オートコンプリート」ボタン
「オートコンプリートの設定」ダイアログ
の「フォーム」チェックボックス?

一度履歴のクリアを行ってみては?
または、一旦offに設定後、onにしてみるとか?

QACCESSでフォームのチェックボックスにチェックを入れて任意の数値を入力したい!!!

ACCESSでフォームのチェックボックスにチェックを入れるとて任意の数値を入力したいと思っています。
テーブルのデータ型はYES/No型ではなく、数値方にしておきチェックが入ると任意の数値(たとえば100)を入力できるようにしたいのですが、ご存知の方ご教授ください。

Aベストアンサー

1.フォームにチェックボックスを配置,
2.そのチェックボックスのイベント「更新後・・」に
数値を入れたい項目に任意の数値が代入出来るように、VBAもしくは、マクロで作成
 


このカテゴリの人気Q&Aランキング

おすすめ情報