過去の桐井戸端BBS (桐ver.8)
9939 サブフォームの入力が終わったらEnterキーで次のサブフォームに移動したい Ao 2001/02/25-18:17
桐のVer8を使っています。OSはWIN95です。

ACCESSの仕事を桐で入力してデータを入れ替えたいと思い、
ACCESSのフォームに似せて桐のフォームを作成しました。
サブフォームが2つ貼ってあったので、桐で初めて同じようにしてみました。

一応なんとか入力出来るまでにこぎ着けたのですが、
エンターキーで項目間の移動をして入力していたところ、
最後のサブフォーム間の移動が出来ません。
ここでキーボードから手を離してマウスに行くのは、作業効率的にすごくロスなので、
どうしてもキーボードで操作したいと思います。

言ってることが上手く伝わっているか不安ですが、
どなかた知っている方がみえたら教えて下さい。お願いします。
9943 Re:サブフォーム間の移動 佐田 守弘 2001/02/25-22:16
記事番号9939へのコメント
Aoさん

●1つのフォームでの入力終了後に次のフォームへ移動する

>最後のサブフォーム間の移動が出来ません。
>ここでキーボードから手を離してマウスに行くのは、
>作業効率的にすごくロスなので、どうしてもキーボードで操作したいと思います。

とは、1つのサブフォームの入力が終わったら、次のサブフォームの先頭のオブジェクトに移動したいという事でしょうか。
これはイベントを使う事によって簡単にできます。
方法としては、それぞれのサブフォームの最後のオブジェクト
(入力が終わったら次のサブフォームに移動したいオブジェクトです)に対して、
ソース値更新イベントを設定します。
そのイベントハンドラの中では、
「メソッド呼び出し @<サブフォーム名>.@<移動したいオブジェクト名>.フォーカス設定()」
コマンドを実行させればよいでしょう。

●どのオブジェクトからでも、別のサブフォームに移動できるようにしたい
これは、コマンドボタンを作り、手続き実行を設定します。
そしてその一般手続きの中で、上記と同様にメソッド呼び出しコマンドを使って目的
オブジェクトへのフォーカス設定をします。

なお、コマンドボタンの実行は、ショートカットキーの設定を行う事によって、キーボードからの操作が可能です。

佐田守弘(KS-00119)
9946 Re:サブフォーム間の移動 Ao 2001/02/25-23:25
記事番号9943へのコメント
>佐田 守弘さん
ご返答ありがとうございました。
待っていたので非常にうれしいです。

…ですが、何せデータ入力が専門の私は、こういった知識に乏しいので、ちょっと難しいです。
ごめんなさい。
が、納期があるので、すがるような思いでこちらにおじゃましています。

>とは、1つのサブフォームの入力が終わったら、次のサブフォームの先頭のオブジェ
>クトに移動したいという事でしょうか。

これはその通りです。
1つのサブフォームの最終行が終わったら、次のサブフォームの頭に行きたいのです。
普通はタブか、何かの特殊キーとの組み合わせで行くんじゃないかという安易な考えで色々したのですが、
全く思い通りになりません。

>これはイベントを使う事によって簡単にできます。
>方法としては、それぞれのサブフォームの最後のオブジェクト(入力が終わったら次
>のサブフォームに移動したいオブジェクトです)に対して、ソース値更新イベントを
>設定します。
>そのイベントハンドラの中では、
>「メソッド呼び出し @<サブフォーム名>.@<移動したいオブジェクト名>.フォーカス
>設定()」
>コマンドを実行させればよいでしょう。

このイベントというのがさっぱり解りません。
オブジェクトの属性の中のイベントのタブの中の「ソース値更新」にチェックを入れればよいのでしょうか?
で、どこかにイベントファイルを作って下の命令を入力しておくのかなぁと思って、それらしきものは作ったのですが、
そのファイル名を入れると思われるそのオブジェクトの中のイベントの「イベントファイル名」が
アクティブになっておらず、どこにファイル名を入力したらよいのか解りません。
こういったことに関しては超初心者なので、恥ずかしい限りなのですが…。
「イベントハンドラ」というのもよく知りません。ごめんなさい。

で、ついでといっては何なのですが、
2つ目のサブフォームの終端がそのレコード入力の終了で、
その入力が終わったら次の新規レコードの頭に行きたいのですが、
それも全くどうしてよいか解りません。
いちいちクリックするのは、先ほど書きましたように、作業効率上避けたいので、
キーボードで次へ行きたいのです。

通常はShift+ENTERで次に行くのですが、
どうもこれも思い通りに行きません。

どうかよろしくお願いします。

9949 イベントの作り方 佐田 守弘 2001/02/26-00:29
記事番号9946へのコメント
Aoさん
イベントの作り方に関しては、基礎的なし料が私のサイトに掲載してありますので、まずこちらで勉強してみて下さい。
ここでは簡単に述べますが、イベントはそれ程難しいものではありません。

1)イベントファイルの指定
まず、フォームのオブジェクト属性の[イベント]のタブで、イベントファイル名を指定します。
フォームとイベントは1対1で作るのが原則ですから、イベントファイル名にもフォームと同じ名前を付けておくの通いでしょう。
なお、この指定を忘れている場合には、最初のイベントハンドラの作成時に指定が求められます。

この手順でイベントファイル名を指定しておくだけで、後は勝手に作ってくれます。
>それらしきものは作ったのですが、
との事ですが、それらしきものを作る必要はありません。

2)イベントハンドラの作成
>オブジェクトの属性の中のイベントのタブの中の「ソース値更新」に
>チェックを入れればよいのでしょうか?
チェックを入れるのでなく、ダブルクリックして下さい。
イベント名のダブルクリックにより、イベントファイルがない場合には自動で作られ、その中にイベントハンドラが作られます。

作られるのは、「手続き定義開始」と「手続き終了」の2つのコマンドです。
イベントハンドラとは、この2つのコマンドにくくられた範囲のコマンド群を言います。
そして、先に伝えたメソッド呼び出しコマンドは、この2行の間に記述します。
自動で作られる「手続き定義開始」コマンドの後ろには、イベントを作るオブジェクト名を含む記述などがありますが、
この部分にはいっさい手を触れないで下さい。要するに自動で作られるままで結構です。
また、イベントによっては後ろの方に自動変数名が記述されていますが、これは必要な時だけ使えば良いので、
分からなければ無視して下さい。

●一番難しいのは
自分が何をしたいかです。
自分がしたい事を桐のコマンドで表現できれば、イベントは初めての人でも簡単に作れます。
当たり前の様でいて当たり前でないのが、「自分が何をしたいのか。桐に何をさせたいのか」それを明確にする事です。
これさえ分かり、それを的確に伝えられれば、後は人に聞けば教えてくれます。
しかし、「私の行く所、どこでしょう」「私は何をする人なのでしょう」は誰も教えてくれません。
(でも、これが分かっていない人が多いですね。)

佐田守弘(KS-00119)

戻る