過去の桐井戸端BBS (桐ver.8)
16034 メインフォームで行訂正をしたい nagai 2002/05/19-16:19
V.8で メインサブフォームに挑戦していますが、うまくいきません。
メインフォームで、行挿入し、その行の行訂正を行おうとしたら、
「サブフォーム付きでは実行できません」とのエラーメッセージが出てしまいました。
 行訂正する項目は、サブフォームとのリンク項目ではありません。
 なんとか行訂正を行う方法はないものでしょうか?
16037 Re:メインフォームで行訂正をしたい 悲しげ 2002/05/19-17:19
記事番号16034へのコメント
どもっ、nagaiさん
>V.8で メインサブフォームに挑戦していますが、うまくいきません。
>メインフォームで、行挿入し、その行の行訂正を行おうとしたら、
>「サブフォーム付きでは実行できません」とのエラーメッセージが出てしまいまし
>た。

これだけではどのような前提なのかが判らないので、外している可能性大ですが、
nagaiさんはひょっとして「行訂正 フォーム」コマンドでメイン&サブフォームを扱おうとしているのではないでしょうか?
だとすれば、メイン&サブフォームは「行訂正 フォーム」ではうまいこと動きません。
頑張ってイベントで処理するしか無いと思います。

16042 確認>メインフォームで行訂正 佐田 守弘 2002/05/19-23:39
記事番号16034へのコメント
nagaiさん

問題が起きているフォームは、どの様に開かれたでしょうか。
可能性として

@フォームを直接開いた
イベントでシステムをくむ場合には、この様な開き方をします。
そして、通常は行挿入や行訂正は問題なくできるはずですが。
このケースでは、特にコマンドを使わずに行挿入や行追加を行うものと思います。
(もちろん、イベントハンドラ内のコマンドでも行えますが)

A一括処理からウインドウ作成、ウインドウ会話処理コマンドで開いた
ウインドウ会話を行えば、会話モードに入りますから、
基本的には行挿入や行追加は問題なくできると思うのですが。
もし一括処理から呼び出したフォーム上で、イベントなどを使って、
何か別の処理をしたとすると、状況次第では、御質問の様なエラーも起きないとは限りません。
しかし何が起きたかは、書かれている内容からは推定できません。

佐田守弘(KS-00119)
16043 Re:メインフォームで行訂正をしたい 悲しげ 2002/05/20-02:54
記事番号16038へのコメント
話題・名前とも、何だか既視感があったような気がしたのですが、
http://www.fuku3.com/~habata/kbbs/kakov8/09421.htm
の「ながい」さんとは別人でしょうか?(^^;)

16052 Re:メインフォームで行訂正をしたい nagai 2002/05/20-23:23
記事番号16037へのコメント
悲しげさん

>どもっ、nagaiさん
>>V.8で メインサブフォームに挑戦していますが、うまくいきません。
>>メインフォームで、行挿入し、その行の行訂正を行おうとしたら、
>>「サブフォーム付きでは実行できません」とのエラーメッセージが出てしまいまし
>>た。
>
>これだけではどのような前提なのかが判らないので、外している可能性大
>ですが、nagaiさんはひょっとして「フォーム形式編集」コマンドででメイ
>ン&サブフォームを扱おうとしているのではないでしょうか?
>だとすれば、メイン&サブフォームは「フォーム形式編集」ではうまいこ
>と動きません。頑張ってイベントで処理するしか無いと思います。
>

ご指摘のとおりです。(説明不足で申し訳ない)
一括処理で、メインフォームを開き、メインフォームで使用している表に行挿入し
その挿入した行を、 「行訂正 フォーム」コマンドで訂正しようとしております。

 メインフォームは表A、サブフォームは表B、それぞれの表の[日付][社員番号]をリンク項目にしております。
 目的は、メインフォームを開いた時点で、新たな行を追加し、追加された行の[日付B]と
[社員番号B]をフォーム上で入力し、入力された[日付B]と[社員番号B]で、
既に登録されている[日付]と[社員番号]を検索し、二重登録されないようにしたいのが目的です。
 [日付]と[社員番号]の同じ行がない場合には、追加された行の[日付]に[日付B]を、
[社員番号]に[社員番号B]を入れ、その[日付]と[社員番号]をキーにサブフォームでデータ入力をしたいと考えております。
 いい知恵を拝借したい。
 なお、以前にも同様の質問をいたしましたが、事情があり、桐の勉強を休んでおりました。
これから修得に励みたいと思いますので、よろしくお願いします。

16077 Re:メインフォームで行訂正をしたい 悲しげ 2002/05/21-22:15
記事番号16052へのコメント
どもっ、nagaiさん

>一括処理で、メインフォームを開き、メインフォームで使用している表に行挿入し
>(中略)
>いい知恵を拝借したい。

一括処理(いわゆる古典一括)でメイン&サブフォームを制御する方法は、
私はさんざんっぱら悩んだあげく、結局は断念したことは以前に書いたとおりです。
よって、「一括処理で」の「いい知恵」を提供することは私にはできません。
イベントでなら可能だと思いますので、その線で思い付いたところをざっと書きます。

イベントは、基本的には、フォーム上で純然たる会話処理として入力し、
その上で何らかのイベントを引き金として何らかの処理をさせるものと、
とりあえずはお考え下さい。
ですからこの場合のメイン部での新規の行追加(または行訂正)も、
会話処理の行追加として考えるのもひとつの方法かと思います
(一括処理コマンドの「行追加 フォーム,……」ではなく←そもそも使えないのだから)。
そして入力完了後には、例えばボタンをクリックすることによって
値を確定して表示モードとしたり、その上で何らかの処理をさせたり、とか。
二重登録チェックをひとつの表で行うことはちょっと難しいところがありますから、
私なら日付や社員番号とかを作業用の別表で入力しておいて、
そのデータが本表に存在するか否かをチェックさせると思います。
存在すればそれなりの対応があるでしょうし、存在しなければ別表作業表データを本表に読み込みさせるとか。
その上で、本データたるメイン&サブフォームに移って、
フォーカスをサブ部に置きます(メソッドに「フォーカス設定」なるものがあります)。
サブ部の入力自体は、これまた当初は純然たる会話処理でも可能かと思います。

やり方は色々あると思いますが、ひとつの考え方の例として書かせていただきました。
粗雑な例で申し訳ありませんが、全面展開するには、場が違うことと、
私の方にもその余裕はありませんので、こんなところでご勘弁下さい。
16081 Re:メインフォームで行訂正をしたい nagai 2002/05/21-23:27
記事番号16077へのコメント
悲しげさん ご教示ありがとうございます。
ご教示の別表の方法でトライしてみます。

戻る