★MSアクセスウエッブカレッジ| サンプル(ダウンロードする)|業務統合4in1|小さな会社用『感嘆!』 |
▲▲MSアクセスマクロ研究会 第13回▲▲ |
||
サブフォームへのコントロール移動、データ入力項目が多くな ると、タブの移動をキーボードから自動で移動させたくなります。 最近の質問にも、いくつか見受けられましたので、取り上げて みました。 1 タブ移動の基本 タブ移動とは、「エンターキー」、「タブキー」を押したとき、 カーソル位置が移動することで、基本的移動方向は、 @まず右方向へ A下に移動します。 つまり、Zの文字のように移動します。 2 タブを移動させない コントロールにタブを移動させるか、移動させないかを、コント ロールごとに設定ができます。移動させないコントロールをまず設定 します。該当のコントロールをデザインビューにして、下記設定をし ます。 ○プロパテーで、「タブストップ」の項目を「いいえ」にします。 それから、非表示のコントロールも「いいえ」にして置きます・ 非表示は、移動しないはずですが、しておいたほうが安全です。 ○コマンドボタンのタブ設定を「いいえ」にしておく ここで注意しておきたいことは、入力フイルドだけでなく、ファ イルを閉じるなどの、コマンドボタンにも、タブは移動するとい うことです。 ○ユーザーさんで、タブ移動していて、よく、カーソルが消えてしまいました、どこへいったんでしょうか?と聞かれます。これは ほとんど、コマンドボタンにカーソルが移動している場合です。 コマンドボタンのプロパテーを開いて、タブ設定を「いいえ」にしておきます。 コマンドボタンは、原則的には、クリックするわけですから、マウスクリックによって起動すればいいので、タブ移動はしなくてもいいことになります。 これで、タブ移動させるコントロールが決まりました。 次は、順番です。順番は、該当のフォームをデザインビューで開き ます。そして、画面上部メニュバーの、表示――タブオーダーをク リックして、開かれた小窓、「タブオーダー」の中の上下順番を、 コントロールを移動したい順番にします。 基本的には、タブ設定「いいえ」にした項目は、どこにあっても影響 しませんが、目で確かめやすいように、上部から移動順に並べます。 これで、タブ設定は、完了です。 3 サブフォーム内にタブ移動する サブフォーム内へ、タブを移動させたいときもあります。そのときの、 設定は、まず、サブフォームのプロパテーでタブ設定を「はい」に」し ます。これで、タブ移動の対象になります。 次に先ほどの、タブオーダーを開くと、サブフォーム名があります。 (サブフォームの詳細項目は、表示されません) この、順番を設定します。 これで、メイン画面から、指定された順番時に、サブフォームのトップ にタブ移動します。 4 サブフォームから抜ける 問題は、サブフォームから、抜ける操作を、マウスを使わずにおこ ないたいことである。これも非常に多くの問い合わせがくる項目です。 これは、キー操作によって、簡単にできます。サブフォーム内に、カー ソルがあるときに、「ctr」キーと「tab」キーを同時押すと、 サブフォーム外で、サブフォームの次に設定されたメインフォームの 順番にタブが移動します。 5 フォーム内だけでタブ移動する タブ設定は以外に複雑です。上記の設定でタブ設定した場合、タブの 最後にいったあと、タブは、次のページに勝手に移動してしまいます。 入力内容を、じっくり確認して、次のレコードにいきたい場合など、本 当に困ります。こんなときは、今開いているレコードのみでの、タブ移動 ですよ、他のレコードに勝手に行かないでください。という設定が、フォ ームに作れます。 1.フォームをデザインビューで開きます。 2.フォームのプロパテー内のタブ移動項目で、「カレントレコード」を選択します。 初期設定は、「すべてのレコード」です。 そうです。わかりましたね。 これで、enterキーを押しつづけても、他のレコードに移動しない で、終わりまでいくと、又最初のコントロールに移動します。つまり、 同じレコード内をぐるぐる回るわけです。 5 特定のコントロールに移動する フォームを開いたときとか、あるデータを入力したあと、とかに、次の コントロールの移動を指定したい場合、条件などによって、入力順番を飛 ばす場合など、実践では多くのケースがあると思う。 ★マクロによって行う 特定のコントロールへの強制移動は、マクロによって行います。 ○単純な移動 データ入力後、コントロールを移動する場合は、マクロを、ホーカス 喪失後の設定して、アクション、コントロールの移動を作成します。 ○サブフォームへの移動 メイン画面の、ある項目で、データの入力をしたら、次はサブフォーム へ移動させる場合も、マクロで同様にコントロールの移動アクションを 使います。コントロール名にサブフォーム名を入力します。コントロー ル名がありませんのエラーメッセイージがよく出ますが、これは、入力 ミスです。コントロール名は、プロパテーの名前をコピーし、複写する 方法をおすすめします。 サブフォームの特定のレコードの特定のコントロールにタブ移動させる 最も複雑なタブ移動ですが、これもマクロで行います。 処理順番としては、 1サブフォームにタブ移動 2レコード移動 3コントロール移動 の3アクションを実行することになります。 ★この事例は、下記ホームページに実際のタブテストDBを公開 しています。 実際の、DBで確認してください。 知らなきゃ損、コントロール移動テクニック 又、テスト画面には閉じるコマンドボタン削除コマンドボタンが、ありますが、 これを、片方を、タブ移動「はい」にして、両方確認してください。 どんな結果になるでしょう。必ず確認してください。 ◇アクセスでクエリー実行時、処理件数などメッセージを非表示にする方法 【関連ファイルトピック】 1.アクセスが止まってしまう!? 2.サブマクロ 3.アクセスで出来ること 4.イベントって何? 5.クエリーて何? 6.コマンドの実行 7.複数のMSアクセスを使い分ける 8.エコーとメッセージの設定 9.全レコードの表示 10.フォームを開く |
||