>>コマンドボタンに 機能名を”開く” 機能パラメータに"取引管理.tbl","共有する" を設定しています >>イベントタブには何も設定していません > > ??イベントで併合する話をしてるんではなかったの? イベントで併合していますが メニューに取引管理.tblを開くボタンがあり それで普段はデータを投入しています 取引管理.tblを開くときに ボタンに機能名を”開く” 機能パラメータに"取引管理.tbl","共有する" を設定いるという意味です それとは別に併合をかけるためのボタンがあり、併合元ファイルを選択して絞込みをかけて 取引管理.tblと併合するということをイベントで行っています > ちょうど#187で広田さんが言ってますが、自分が共有更新で開いても、他の人も共有更新で開いてると > 併合ができない可能性がある(終了状態=-2)ので、専有で開いた方がいいのかもしれません。 共有ファイルでも併合する場合は不具合が発生する場合があるのですか.... もう少し考えてみます... ありがとうございました
> コマンドボタンに 機能名を”開く” 機能パラメータに"取引管理.tbl","共有する" を設定しています > イベントタブには何も設定していません ??イベントで併合する話をしてるんではなかったの? > > > 終了状態で判別 とありますが > 取引管理.tblが 開いてなかったら 開いてから併合 > そうでなかったら そのまま併合する場合、どう指定したらいいのでしょうか?? ちょうど#187で広田さんが言ってますが、自分が共有更新で開いても、他の人も共有更新で開いてると 併合ができない可能性がある(終了状態=-2)ので、専有で開いた方がいいのかもしれません。
メニューフォームを作成してボタンを設置し、そのボタンの オブジェクトの属性内の コマンドボタンに 機能名を”開く” 機能パラメータに"取引管理.tbl","共有する" を設定しています イベントタブには何も設定していません 取引管理テーブルを開くと 共有になっています 終了状態で判別 とありますが 取引管理.tblが 開いてなかったら 開いてから併合 そうでなかったら そのまま併合する場合、どう指定したらいいのでしょうか??
> そのときに 併合先となる取引管理.tblがひらいてなければ 大丈夫なのですが > 他の誰かが作業をしていて開いているとだめみたいです #167で書きましたが、表コマンドには「モード」を指定しないと専有で開こうとしますから 誰かが開いてたら開けません。 #168で言ってるのはボタンにイベントと機能を両方定義してるってことでしょうか。 その場合イベントが先に実行されます。 あとは、終了状態で判別すればいいのでは。
なんとなくわかってきました 添付しましたが エクセルデータを併合するためにファイルのようなイベントをつくってみました そこで自動的にデータを絞り込んで併合するようにしているのですが 47行目でtblを開くよう指示していて そこでひっかかっているようです メニューボタンから作業するようにしているのですが そのときに 併合先となる取引管理.tblがひらいてなければ 大丈夫なのですが 他の誰かが作業をしていて開いているとだめみたいです その場合はどう定義したらいいのでしょうか? よろしくお願いします
葵さん > そのときオブジェクトの属性のコマンドボタンで 開く "取引管理.tbl","共有する"で > 共有設定をしてあるのですが それではだめなのでしょうか? 今までの経緯から考えれば、それで良いはずですが。 それでだめだとしたら、何か重要な情報について見落としがあるのだろうと思いますが、 その部分を書いて頂いてないので、推定しようがありません。
>> 表 "取引管理.tbl" > では「モード」を指定してないので専有になってるはずですが。 > 表の名前自体変わっちゃってますけど。 取引管理.tblでした(-"-;)省略してしまいました メニューボタンから 取引管理.tblを開くようにしたのですが そのときオブジェクトの属性のコマンドボタンで 開く "取引管理.tbl","共有する"で 共有設定をしてあるのですが それではだめなのでしょうか?
> オープンモードですが 定義するときに 共有と更新のチェックボックスにそれぞれチェックをいれてるのですが 取引.tblを開いたときには 取引.tbl(共有) と表示されています。 表のオープンモードは開く時に指定するので、 ■No136に返信(葵さんの記事) > 表 "取引管理.tbl" では「モード」を指定してないので専有になってるはずですが。 表の名前自体変わっちゃってますけど。
オープンモードですが 定義するときに 共有と更新のチェックボックスにそれぞれチェックをいれてるのですが 取引.tblを開いたときには 取引.tbl(共有) と表示されています。 そのような場合でも 併合をかけるとエラーがでるのでしょうか? 手動で併合をかけるときは 別の方法で動いているということでしょうか? 初歩的な質問かもしれませんが よろしくお願いします
葵さん ●併合先表の状態 >イベントで行う場合 併合先の表は必ずクローズ状態でなければいけないのでしょうか? 併合コマンドは、現在の編集表に対して行います。併合元表は閉じていても構いませんが、 併合先表は、オープンされていないと併合が行えません。 (オープンされているだけでなく、編集表となっていることが必要) ですから、併合コマンドの前に表コマンドで開いておくか、編集表コマンドで、併合先表を 編集表に指定するのが無難です。 イベントの中で併合コマンドを使う場合ですが、通常はフォームと一緒に開かれて、編集表に なっています。しかしイベントの中で他の表を編集表に切り替えることもできるので、そのまま 併合しようとすれば、対象表が違うためにエラーになります。 ●オープンモード >取引管理.tblは 共有で開いていてそこに検査.tblを併合かけようとする との事ですが、単に「共有」とだけ書かれています。 共有モードには共有更新と共有参照の2つのモードがあります。共有更新で開かれていれば 置換を行う併合ができますが、共有参照の場合にはできません。 オープンモードを確認して下さい。
■No150に返信(葵さんの記事) > 併合時の 項目名未定義エラーは []の部分が一部全角の入力で引っかかっていたようなのですが 「[」「]」は全角半角どちらでもかまわないはずですが。
併合時の 項目名未定義エラーは []の部分が一部全角の入力で引っかかっていたようなのですが 別の部分でエラーが出てしまいました 取引管理.tblは 共有で開いていてそこに検査.tblを併合かけようとするよ すでにオープンされています というようなメッセージが表示されます。 イベントで行う場合 併合先の表は必ずクローズ状態でなければいけないのでしょうか? オープンした状態のままで併合することはできませんか?
葵さん 1つの併合元項目から2つの併合先項目に併合するといった操作を行ったことがないので、推定です。 前回の転置集計結果の併合のケースからの類推ですが、併合先となる、[検査合格年月日]あるいは[取得年月日] のいずれかの項目が存在しない、あるいか項目名の記載が誤っているといった事が原因の様な気がするのですが。 手動で併合する場合、存在する項目名が表示されるので、併合先の項目を間違いなく指定できます。 しかしイベントなり一括処理のプログラムを手で記述すると、項目名の書き誤りなどが起きないとも限りません。 念のためにうまく行く手作業で併合を行って、それを履歴に書き出してみるとどうなりますか?
■No136に返信(葵さんの記事) > 手作業で併合させる場合は同じ項目を複数項目に併合できるのですがイベントではできないのでしょうか? そんなことないと思いますけど。入力ミス、ホントにないですか? # 「置換挿入」は現行では「両方」です。「置換挿入」のこともマニュアルよく見りゃ書いて # ありますが、他の人のこと考えたらあまり使わないほうがよろしいかと。
表 "取引管理.tbl" 併合 "検査.tbl", 置換挿入, {[コード]照合[CD],[検査合格年月日]複写[合格決済日],[取得年月日]複写[合格決済日]} のように 検査.tblの合格決済日を 取引管理.tblの検査合格年月日と取得年月日という項目に併合させようとしたところ KU1172:未定義の項目名があります と表示されます 手作業で併合させる場合は同じ項目を複数項目に併合できるのですがイベントではできないのでしょうか? なにか方法がありましたら教えてください。