色彩を教える人になるための講座「色彩講師養成講座」の魅力とは>>

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

gooドクター

A 回答 (2件)

たびたびすみません。


調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007 …

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007 …
    • good
    • 4
この回答へのお礼

ありがとうございます。
なかなかHelpを見ても、専門用語が多くて、今一わからないのが悲しいところです。
何となく、表形式で表示しているときは、Requeryで、単票形式で表示しているときはRefreshを使うといいような気がします。(単票形式でRequeryを使うと、レコードの途中を表示していたのに、Requeryしたとたん、先頭レコードに移動してしまった気がします)
ネットワーク上で使用していると、他のユーザーの変更を反映させるのに苦労します。
お陰さまで少しは、理解できた気がします。

お礼日時:2003/05/05 05:49

僕も良くわからないのですみませんが・・・


ヘルプの質問タブに「Requery」と入力して、「"Requery/再クエリ" アクション」を表示させ、「関連項目」から「RepaintObject、ShowAllRecords、Requery、および Refresh アクション/メソッドの比較」というのを選ぶといろいろと書いてありました。
そのまま貼り付けます。

●"RepaintObject/オブジェクトの再描画" アクション
●DoCmd.RepaintObjectRepaint メソッド
指定したオブジェクトのコントロールを再描画します。これらを実行しても、データベースの再クエリは行われず、新しいレコードも表示しません。
(※…僕はループ処理の関係で、テキストボックスに代入したテキストが表示されないときに使っています。)

●"ShowAllRecords/全レコードの表示" アクション
●ShowAllRecords メソッド
再クエリを行い、最新のレコードを表示し、フィルタを解除します。"Requery/再クエリ" アクションではこのような処理を行いません。


●"Requery/再クエリ" アクション
●DoCmd.Requery メソッド
オブジェクトまたはそのコントロールのソースを再クエリします。"Requery/再クエリ" アクションまたは Requery メソッドは、次のいずれかの処理を行います。
指定したコントロールやオブジェクトの基になるクエリの再実行。
指定したコントロールやオブジェクトの基になるテーブルのレコードに行われた追加、変更、削除内容の反映。


●Refresh メソッド
指定したフォームまたはデータシートに含まれるレコードを更新して、データへの変更を反映します。この変更には、マルチ ユーザー環境での他のユーザーによる変更も含まれます。Refresh メソッドが表示するのは、カレント レコードセットに加えられた変更だけです。レコード ソースへのレコードの追加や削除は反映しません。


●Requery メソッド
新しいレコード、または最後に再クエリしたときにレコード ソースから削除されたレコードを反映し、フォームまたはコントロールの基になるデータを更新します。
アクティブ オブジェクトにないコントロールを再クエリする場合は、このメソッドを使います。"Requery/再クエリ" アクションやそれに対応した DoCmd オブジェクトのRequery メソッドは使いません。


※…Refreshはレコードの局所的な変更を確定・反映するもので、Requeryは完全なすべての変更を確定・反映するものなんでしょうか?そういう感じに読めますね…。
識者の回答を待った方がいいですね。すみません。
    • good
    • 4

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング