階層化レコードセットの子レコードセットでrequeryするには?

解決


koma  2004-05-06 17:12:52  No: 113027  IP: [192.*.*.*]

環境はVB6.0 + ADO です。

階層化レコードセットの、子レコードセットの方でrequeryしようとすると、
「コマンドオブジェクトに対してCommandTextが設定されていません」
とエラーが出てしまいます。具体的にはこんな感じです。

    :
rec.Open "SHAPE {…} APPEND ({…} AS sub RELATE …)", …
    :
set recSub = recordset.Fields("sub").Value
    :
recSub.requery  ←ここで上記のエラーが出る

rec.requeryと、親レコードセットのほうでrequeryしてやっても、子レコード
セットであるrecSubのほうまではrequeryされてないようです。

どうか解決法のご教授をお願いします。

編集 削除
koma  2004-05-07 10:15:21  No: 113028  IP: [192.*.*.*]

自己レス。recSubを設定しなおしてやれば動きました。
recSubに連結した各オブジェクトのDataSourceも再設定する必要があるのが、
少々面倒ではありますが。

rec.Requery
    :
set recSub = recordset.Fields("sub").Value
object.DataSource = recSub
    :

もう少しスマートな方法もありそうな気がするので、解決印は保留します。
引き続き回答をお待ちしています、宜しくお願いします。

編集 削除
魔界の仮面弁士  2004-05-07 10:58:00  No: 113029  IP: [192.*.*.*]

回答ではありません。(試していないので)

> rec.requeryと、親レコードセットのほうでrequeryしてやっても、子レコード
> セットであるrecSubのほうまではrequeryされてないようです。

・StayInSyncプロパティは、どちらのモードで運用されていますか?
・Requeyの替わりに、Resyncで代用できませんか?

編集 削除
koma  2004-05-07 13:41:06  No: 113030  IP: [192.*.*.*]

アドバイスありがとうございます。

StayInSyncはtrueです。
Resyncは「更新に必要なキー列の情報が足りません」とエラーが出ました。

編集 削除
koma  2004-05-10 09:37:45  No: 113031  IP: [192.*.*.*]

とりあえずプログラムは支障なく動いているので、解決印をつけたいと思います。
ありがとうございました。

編集 削除