過去の桐井戸端BBS (桐ver.8)
15176 AフォームからBフォームの項目を絞り込みしたい ABA 2002/02/20-17:25
現在、1つのテーブルに各日付けのデータが入力されています。

そして、そのテーブルのフォームがAというフォームです。

更に、Bというフォームにカレンダーが表示されています。

そこでBの4/1のボタンを押すとAのフォームに4/1のデータだけを絞り込み表示、
4/2のボタンを押すと4/2のデータだけを絞り込み表示させたいのですが、
コマンドを使用できないのはツリーを見てわかりました。

一括処理やイベントを使用すればできるとの事ですが、どの様にすれば良いのか
具体的に教えていただけますでしょうか?
15178 変数に値を代入して引き渡して下さい。 佐田 守弘 2002/02/20-22:41
記事番号15176へのコメント
ABAさん
「具体的に」とはどの程度の事を説明すれば良いのかが分かりませんが、
ひとまずは、イベントで処理する場合の考え方(アルゴリズム)を説明します。
まず始めにAフォームは開かれているとします。
●日付指定にBを開く
このフォームから日付指定のためにBを開くわけですが、[日付指定]の様な
コマンドボタンを作っておくのが良いでしょう。
このコマンドボタンには、手続き実行の機能を設定するのが良いと思います。
(マウスクリックイベントでも構いませんが)
そして実行する手続きの中身は、
 フォーム呼出し B
です。このコマンドを実行してBを開きます。
●フォームBで日付を選ぶ
フォームBの作り方はいろいろあると思います。その作り方によって、
日付値をどの様にして得るかが変わりますが、いずれの方法でも、日付のボタンを押したら、
対応する日付を適当な変数に代入します。
これもマウスクリックイベントでも良いですが、手続き実行の機能名で
一般手続きを呼び出す方が、キー操作も行えるので便利です。
一般手続きの中で実行するコマンドは、
 代入 &日= <代入する日付の値>
の様なコマンドです。
もちろん、年、月の値を付けて日時型の変数に代入させてもよいでしょう。
●フォームBを閉じる
簡単には[閉じる]ボタンを作っておき、手動でこれをクリックします。
日付を選んだら自動で閉じさせるのであれば、上記の代入コマンドに続いて
 メソッド呼び出し @閉ボタン.実行() (「閉ボタン」はボタンのオブジェクト名)
を実行すればよいでしょう。
●選んだ値で絞り込む
Bフォームが閉じられれば、元のAフォームに戻ります。
変数に値が代入されているので、後はこの日付の値を使って、絞り込みを行うなどのコマンドを実行します。

佐田守弘(KS-00119)
15182 Re:変数に値を代入して引き渡して下さい。 ABA 2002/02/21-11:29
記事番号15178へのコメント
佐田 守弘さん

考え方はわかりました。ありがとうございます。

実際にイベントへの書き方を教えていただけないでしょうか?

イベントを使用した事がないので・・・。
15194 Re:変数に値を代入して引き渡して下さい。 佐田 守弘 2002/02/22-00:07
記事番号15182へのコメント
ABAさん
>実際にイベントへの書き方を教えていただけないでしょうか?
これは2つの意味に取れるのですが、

@「イベントの作り方の方法を教えてほしい」の意味

私のサイトに詳しい方法が掲載してあります。まずはこれを参考にしてみて下さい。
ちょっとした書籍程度の内容があります。

A「そのまま動くイベントを作って下さい」の意味
これはできません。
できないと言うよりも、不可能です。
どうして不可能なのかは、上記を読んできちんと理解されれば分かるはずです。

かいつまんで簡単に言えば、イベントは、単独で作るものではなく、表やフォームと関連づけられています。
それがなければ、実際に使えるイベントは作れません。
「例題的なものでよい」という事でしたら可能ですが、それは前回書いたものと同じです。
前回書いたものが、イベントの中で使われるコマンドの主要な部分です。
実際には、それらの前後に手続き定義コマンドが付き、

手続き定義開始 <オブジェクト名付きのイベント名> (<自動変数のリスト>)
 <実行するコマンド群> ← これらは前回書いたものです。
手続き定義終了

となります。
そして、このイベントを書けばよいのではなく、フォームの中でイベントを設定しないと、機能しません。
実際にはフォームのオブジェクトでイベント名をダブルクリックすれば、
上記の手続き定義開始と手続き定義終了コマンドが自動的に作られます。
その間に実行するコマンド群を書き込むだけです。

これで分かると思いますが、単にイベントファイルだけを作る事は不可能だし、
意味がない事なのです(動かなくてよい例題なら作れます)
もし自分で作れなくて、誰かに作って貰おうとしたら、表やフォームなど一式を
付けて開発を依頼するしかないでしょう。

佐田守弘(KS-00119)

戻る