• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access メインフォームのリフレッシュについて)

メインフォームのリフレッシュについて

このQ&Aのポイント
  • Access2003にて、メインフォームのリフレッシュを行いたいがうまくいかない。別フォームでデータを更新後、メインフォームに変更内容を反映させたい。
  • 試した方法として、別フォームのデータ更新が終了した後、Forms![メインフォーム名].requeryを試したが変化なし。また、サブフォーム内ロジックでのrequeryも試してみたが同様の結果。
  • メインフォームにはフォームロード時と同じように処理を走らせたいが、現在の方法では実現できない。サブフォームを含めたメインフォーム全体のリフレッシュ方法を知りたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • MAXIMAX
  • ベストアンサー率60% (50/83)
回答No.2

#1 です。余談ですが、DAO と ADO の選択の目安としては、Access オンリーの設計としていいか、汎用性を持った設計にしたいか、みたいなところではないでしょうか。 DAO は完全に Jet に特化したオブジェクトなので、Jet に対する速度や細かな操作が得意です。 ADO は OLE DB を経由するため、速度に若干ムラがあり、かゆいところに手が届きにくいところがありますが、OLE DB プロバイダを変更すれば、接続するデータベースの変更が容易という利点があります。 Access でクローズされたアプリには DAO のほうが合ってるのかもしれませんね。でも、私はDAO はあまり使ったことがありません。 この紛らわしい省略単語、なんとかならんもんですかね・・・・・・・。

-0-y
質問者

お礼

ありがとうございます

-0-y
質問者

補足

勉強になります。感謝いたします。 DAOを使ってみようかと思案中です。 昔、DAOを使ってAccessでプログラムを組んでいた人がいましたが このような理由だったんですね。 たしかに呼び方も、DAOとADOは紛らわしいですね(笑 丁寧な回答、大変助かりました。 また機会がありましたら、宜しくお願いいたします。

その他の回答 (1)

  • MAXIMAX
  • ベストアンサー率60% (50/83)
回答No.1

別フォームでの更新処理をどういった方式で実装されているのかがちょっとわからないのですが、ADO 使われている場合は、アプリケーションで独自に ADO のコネクションを作ると、そこにキャッシュバッファが作られて、Access 本体の処理との同期に遅れが出る、とうことが発生することがあったように思います。その場合、ちょっと詳細がわかりませんが、Access 本体が使っている ADO のコネクションを取得することができたかと思います。 ちなみにサブフォームはきちんと反映されている、ということでしょうか?サブフォームにも Requery 送ってみるのはどうでしょう??

-0-y
質問者

お礼

ありがとうございました

-0-y
質問者

補足

回答ありがとうございます。 キャッシュバッファですか、同期に遅れが、、、たしかに心当たりがあります(汗 Googleでコネクション関連で調べてみると、 「リクエリが効かない?」など色々な情報が出てきましたね。 http://www.accessclub.jp/bbs5/0009/vba2399-2.html <だめだった時> Dim objConn as ADODB.Connection Set objConn = New ADODB.Connection objConn.Open = CurrentProject.Connection  ↓ <OK> Dim objConn as ADODB.Connection Set objConn = CurrentProject.Connection とすると良いようですね。 大変良いヒントになりました。これで解決できそうです。 今からDAOにすべきか、ADOにすべきか、 これもADOの特性を理解しておく、いい機会とするか難しいとこですが(笑 Accessで使用する場合は、DAOの方が良いのでしょうかね? 頑張ってみます、ありがとうございました

関連するQ&A

専門家に質問してみよう