メイン-サブ形式でフォームを作成しております メインには 記録番号 日付 という項目があり サブには 明細番号 記録番号 名前 出欠チェックという項目があります リンクは 記録番号でしています これで出欠記録をとろうと考えています 名前は会のメンバーで固定していて50名います 欠席者が毎回 数人しかいないので 全員の名前と出欠チェックにすべて○をつけた 定型内容を サブに一旦読み込ませ 後に訂正する方法を考えました フォーカスがサブに来た時 コマンドボタンで定型内容の表をサブに読み込ませようと しましたが サブの記録番号が空白のままで うまく記録番号を ひろってくれません どうしたらよいか 教えてください XP-桐9
大岡パンダさん メイン&サブフォームで、サブフォームの対象表に読み込みをするとの事ですが、 多分、[記録番号]がサブフォーム上では、この項目がグループ項目(グループオブジェクト) に設定されているために、値の読み込みや変更ができないのではないかと推定します。 (そういった使い方をしたことがないので、あくまでも推定ですが) 対策ですがメイン&サブフォームではなくて、その前のトップメニューとでも言うか、 メイン&サブフォームを呼び出すメニュー画面(対象表が設定されていない前提)で、 読み込みを行ってみてはどうでしょうか。
つまりは、定型データを読み込ませたはいいが、そのデータには 「記録番号」が入っていない(ヌル)ということですね? これはコマンドボタンの単なる機能だけでは難しそうなので、手 続き実行でKEVで記述する必要がありそうです。 以下、手続き定義名を仮称「定型読み込み」とした一例。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 手続き定義開始 定型読み込み() 編集表 "mainの表名" &記録番号=[記録番号] /*既に新の番号が入力済みとして*/ 編集表 "subの表名" グループ選択解除 ジャンプ 行番号=終端 読み込み "定型的データ表名" 絞り込み [記録番号]="" 置換 [記録番号]=&記録番号 /*★*/ 行マーク定義 1 解除 ジャンプ 行マーク=1 行マーク解除 1 グループ選択 手続き定義終了 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 定型データ表に特に○が入っていなくても、上記★の時点で 置換 [記録番号]=&記録番号,[出欠]="○" のようにすることもできます。
■No302に返信(佐田 守弘さんの記事) > 大岡パンダさん > メイン&サブフォームで、サブフォームの対象表に読み込みをするとの事ですが、 > 多分、[記録番号]がサブフォーム上では、この項目がグループ項目(グループオブジェクト) > に設定されているために、値の読み込みや変更ができないのではないかと推定します。 > (そういった使い方をしたことがないので、あくまでも推定ですが) > > 対策ですがメイン&サブフォームではなくて、その前のトップメニューとでも言うか、 > メイン&サブフォームを呼び出すメニュー画面(対象表が設定されていない前提)で、 > 読み込みを行ってみてはどうでしょうか。 佐田先生 ご返答ありがとうございました 対策案なのですが 記録番号をカウンターとしているため メインがフォーカスしないと 進まない気がします 対策案が悲しいことによく理解できません 自分の方法に固執しません 先生ならば 出席簿と日付とを記録に残す場合 どのようにお考えになるか ご指導ください
次のような方法もありうるかも。(試してませんが) 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 手続き定義開始 定型読み込み() 編集表 "mainの表名" &記録番号=[記録番号] /*既に新の番号が入力済みとして*/ ファイル複写 "定型的データの表名","作業表.tbl" 表 "作業表.tbl" 置換 [記録番号]=&記録番号,[出欠]="○" 編集表 "subの表名" グループ選択解除 ジャンプ 行番号=終端 *読み込み "作業表.tbl" ←間違い(^^;) 読み込み 表,"作業表.tbl",* 終了 表 "作業表.tbl" ファイル削除 "作業表.tbl" グループ選択 手続き定義終了 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
■No303に返信(悲しげさんの記事) > 2005/09/24(Sat) 22:52:08 編集(投稿者) > > つまりは、定型データを読み込ませたはいいが、そのデータには > 「記録番号」が入っていない(ヌル)ということですね? > > これはコマンドボタンの単なる機能だけでは難しそうなので、手 > 続き実行でKEVで記述する必要がありそうです。 > 以下、手続き定義名を仮称「定型読み込み」とした一例。 > 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 > 手続き定義開始 定型読み込み() > 編集表 "mainの表名" > &記録番号=[記録番号] /*既に新の番号が入力済みとして*/ > 編集表 "subの表名" > グループ選択解除 > ジャンプ 行番号=終端 > 読み込み "定型的データ表名" > 絞り込み [記録番号]="" > 置換 [記録番号]=&記録番号 /*★*/ > 行マーク定義 1 > 解除 > ジャンプ 行マーク=1 > 行マーク解除 1 > グループ選択 > 手続き定義終了 > 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 > > 定型データ表に特に○が入っていなくても、上記★の時点で > 置換 [記録番号]=&記録番号,[出欠]="○" > のようにすることもできます。 > 悲しげさん ありがとうございました ヌルで絞り込んで置換する方法ですね なるほど納得 ただ 感覚的なものなのですが 流れがぎこちない感じがしてしまうのです 悲しげさんなら このような出席簿と日付のデータをどのようにする処理なさるのか 考え方をお教えください 自分のやり方には固執しません
>ただ 感覚的なものなのですが 流れがぎこちない感じがしてしまうのです No.307の方が幾分マシかもしれませんが、 ぎこちないと云えば、なるほど、「定型内容を一旦読み込ませ訂正する方法」 自体がそもそもそんな感じですね。(^^;) 深く検討した訳では全くありませんが、私なら次のようにするかも? ひとつの表で 記録番号,日付,名前A,名前B,名前C,名前D,・・・・ のような項目構成とし([記録番号]・[日付]は表定義で「自動複写」とか)、 表またはフォームで[名前*]の欄に「○」または数字の「1」と入力する。 好みによりトグルボタンにするのもカッコよかったり(入力速度は落ちるかも しれませんが)。 で、必要により[記録番号]または[日付]でグループ化。 ps. 引用は必要最小限にて願申上候。
タイトルオンリー。 委細は後刻うにん氏より。(^^;)
■No309に返信(悲しげさんの記事) > ひとつの表で > 記録番号,日付,名前A,名前B,名前C,名前D,・・・・ > のような項目構成とし([記録番号]・[日付]は表定義で「自動複写」とか)、 > 表またはフォームで[名前*]の欄に「○」または数字の「1」と入力する。 > 好みによりトグルボタンにするのもカッコよかったり(入力速度は落ちるかも > しれませんが)。 > で、必要により[記録番号]または[日付]でグループ化。 悲しげさん どうも ありがとうございました このやり方も頭に浮かんだのですが 「データベースでは 同種の項目は 横に展開するのではなく 縦に展開するように」と 昔 教わったので すこし 抵抗があります また 後日の処理として 各個人の年間出席率等の分析やフォームでの一覧性を 考えているのものですから縦展開のほうが なにかと 都合がいいのです わがまま言ってスイマセン
■No310に返信(悲しげさんの記事) > タイトルオンリー。 > 委細は後刻うにん氏より。(^^;) 悲しげさん 発想のヒント ありがとうございました 考えていただいて 本当に感謝です 売上伝票処理で 明細部分に 通常 個別に入力していきますが セット部品販売などをしているところでは 定型内容の読込に 近い処理をしているような気がします 私が聞きたいのは まさに その部分なのです
もうひとつの方法。 「定型内容のひな型表」と「入力・保存表」の関係を、「入力専用作業表」と 「保存専用表」に置き換える。 1.定型内容の表を今回入力用の表とし、必要な事項を入力する。 (記録番号、日付、「○」の除去等)。 2.この結果を保存表に転記する。 (保存表は随時参照・検索する) 3.転記済の入力作業表は、次の入力に備えて全行削除・圧縮してしまいたい ところですが、本件の場合はそうしないで、1と逆の操作、即ち、記録番号や 日付を空にし、全行「○」で置換しておく。 なお、この作業をメイン&サブでやるか単なる伝票/一覧表でやるかは、好み または必要性如何でしょう。 上記2〜3の過程をボタンの手続き実行で行うとしたら (念のため、ボタンの1行目は「表示/確定する」、「手続き実行」は2行目に) 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 書き出し 表,"保存表名",追加,* *保存表は閉じているべき。開かせておいて読み込みも有り。 置換 [記録番号]="",[日付]="",[出欠]="○" *入力作業用がメイン&サブであれば別な手立てが必要? 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 >セット部品販売などをしているところでは 定型内容の読込に >近い処理をしているような気がします かもしれませんね。ま、何を以て「流れがぎこちない」と感じているのかは 結局よくわかりませんでしたが。 * さらにもう1点。 入力作業表は横長表で、転記時に縦展開すると云う手法もしばしば使われて いたと記憶します。旧幅田さんとこで何度も出ましたが、例えば http://www.fuku3.com/~habata/kbbs/kakov8/08011.htm
■No316に返信(悲しげさんの記事) > もうひとつの方法。 ヒント ありがとうございました > かもしれませんね。ま、何を以て「流れがぎこちない」と感じているのかは > 結局よくわかりませんでしたが。 サブで読込をした時 結果的にヌルになりましたが どうしてそうなるのか 理解できないのです また コマンドボタンをカラ打ちしたケースでは ヌルを置換させた場合 予想外の組み合わせができてしまう可能性がある ACCESSでは 同様な処理が コマンドボタン一発で処理できてしまう簡便さの 比較すると 対処療法的な感じがしてしまったのです 不適切な表現であったと後悔しています > 入力作業表は横長表で、転記時に縦展開すると云う手法もしばしば使われて > いたと記憶します。旧幅田さんとこで何度も出ましたが、例えば > http://www.fuku3.com/~habata/kbbs/kakov8/08011.htm この方法で縦に転記する方法しかなかった時代がありましたので 私もよく利用しました
取り合えず、メインサブフォームを使うという前提条件では悲しげさんの提示された やり方が私もベースになると思います。 ちなみに[記録ID]の値の置換は[定型読み込み表]に対して行ってはいかがでしょうか? 読み込んでから手を加えるのではなく、読み込む前のデータに手を加えるってことで・・・ メインの[記録番号]のソース値更新イベントに *------------------------------------------------------- 手続き定義開始 記録番号::ソース値更新() &件数= [記録ID] 表 <定型読み込み表.TBL>,表番号=<N> 編集表 <N> 置換 [記録番号]=&件数 編集表 <サブ.TBL> グループ選択解除 読み込み 表,<定型読み込み表.tbl>,終了状態=&END,* 終了 <N> グループ選択 手続き定義終了 *------------------------------------------------------- とでも書いたらいかがでしょうか? コマンドボタンを押さずとも、新規入力の一連の流れで定型データがサブに作成されると思います。 たこすぱげてぃ
桐の場合、読み込む表にないデータは入らないので困っているということですよね。 (ファイルメーカーだとオプションで「挿入初期値」を計算させるようなことができるのですが) グループ追加時にグループ値を結合表のパラメータ変数に渡して結合結果を読み込む、という手はあるかも? (置換の代りというだけですね) しかし読み込みはフォームでなく表に対して行なうものなので、サブフォームで読み込むというのが 何かなじまないような。
>サブで読込をした時 結果的にヌルになりましたが どうしてそうなるのか >理解できないのです う〜ん、「どうしてそうなるのか」と云われても、ヌルで読み込んでいるから ヌルのままであるのは当然、としか説明しようがありません。 それともこの部分は、「その時は理解できなかった」ことを述べているのであ って、現在は理解できていると云うことなのでしょうか?(その割りには文の 時制が過去形じゃなく現在形ですが) 云い換えれば、質問なのか過去の回想なのか、少々悩ましく……。 >また コマンドボタンをカラ打ちしたケースでは ヌルを置換させた場合 >予想外の組み合わせができてしまう可能性がある >ACCESSでは 同様な処理が コマンドボタン一発で処理できてしまう簡便さの >比較すると 対処療法的な感じがしてしまったのです この2文はどちらも意味が判りません。もっともこちらは過去形だから、既に 解決済みなのかもしれませんが。(^^;)
■No331に返信(たこすぱげてぃさんの記事) たこすぱげてぃさん うまく処理されてますね 勉強になりました 本当にありがとうございました
■No340に返信(悲しげさんの記事) 悲しげさん いろいろな解決案 ありがとうございました 何とか 方向性を見つけ出すことができました 本当に感謝です
大岡パンダさん 私ならどう考えるのかとの事ですが、基本的なパターンはありません。 どの様なデータをどの様に扱うのか、といった事を含めて、どうするのが最適なのか を考えます。それが設計です。 さて質問文だけではいくつか読めない所があります。まず、メインとサブフォームの 対象表ですが、別々の表でしょうか(別々の様に見えますが)。 売上伝票の様なものなら、売上マスタ(1件の売上)と売上明細(1件の内容)の2つの表を使う のが普通で、その他に、商品マスタや顧客マスタも必要になります。 しかし出席表程度のもので果たして、そういったDB設計をするのかどうかはやや気になります。 何も難しくすることが目的ではないので、できる限り単純な方が良いと思います。 出席表であれば、[日付]、[名前](本当は会員番号の方が良い)、[出欠]からなる表と、会員 マスタだけで済むのではないでしょうか。 フォームもメイン/サブにする必要がなく、単に日付でグループ化すれば済みそうに思います。 ●トップメニューの件 今考えておられる様な出席表のフォームを直接開いているのでしょうが、会員マスタのメンテ なり、印刷なりと他のメニューも必要だろうと思うので、そういった処理を選ぶメインメニュー を別に作った方が良いのかなあと思います。そして目的の表を開くコマンドボタンの他、様々な 処理のメニューも作っておきます。 ●出席者リストの自動入力の件 上記の単に日付でグループ化したフォーム(一覧表形式になるはず)を開いた時に、フォーム開始 イベントで、その日の日付でグループ指定します。新しい日付なのでグループ値がないので、 グループ指定の終了状態に0が戻ります。 それを条件にしてグループ追加を行い、次いで会員マスタから必要事項を読み込めば、自動的に その日分の会員リストが読み込まれるはずだと思います。 コマンドは書きませんけど、数行でできるはずです。 ●更に私なら 例えば、会員マスタに今までの出席率を記録しておき、ある出席率以下はデフォルトで欠席を 設定するとか、いろいろと便利な入力を考えるかも知れません。 状況が把握し切れていないので外している可能性がありますが、多分今考えられている方法よりも 単純ですっきりした方法がありそうに思えます。
■No346に返信(佐田 守弘さんの記事) 佐田先生 ありがとうございました 私の質問に 佐田先生はじめ 悲しげさん たこすぱげてぃさん 皆さんのご意見を聞かせていただいて ありがたかったです 質問の仕方も悪かったのですが 内容をもうすこし詳しくお話しすると ある任意団体の会議録を作成するのが本来の目的でした それには 会議日付 時間 場所 議題 議題結果等の項目が十二項目あり(これが書類のメイン) さらに全員の出欠までをA4用紙1枚にまとめるものでした また 出欠表から出席率を計算しそれを次回組織編制に活用するのがネライです --- DOSの時代には 桐をバンバン使用していたのですが その後は五郎-ACCESSと 使用してきました 桐ver.9になって すこし また 使い始めました 桐VER.5特別企画という本は 私にとっては いまだ現役です 勉強して 桐を活用していきたいと思っています 本当にありがとうございました