これはどちらが良いかについての質問ではなく、なぜ機能的に異なるのかという疑問です。私が取り組んでいた問題は処理されましたが、なぜこの現象が起こっているのか不思議です。ADOとDAOの違い
背景 - Accessデータベースからデータを取得するためにExcel vbaを使用します。ユーザーがボタンをクリックすると、Accessからレコードセットが取得され、さまざまなデータがスプレッドシートに読み込まれます。次に、別のレコードセットを別のクエリから取得して、スプレッドシートの別の部分を設定します。
ADOの機能 - ADOは私の最初のレコードセットに最適です。しかし、私の2番目のレコードセットは、Accessのクエリに行き、実行し、行を返しません。 Accessでこのクエリを実行すると、(約3〜4秒後に)開かれます。このクエリには、複数の結合、計算されたアイテム、制限、ユニオンクエリ(おそらく、ユニオンの有無にかかわらず、さまざまな方法で試しました)があります。私は、AD接続を閉じて再開しようとしました。タイムアウト値を変更しようとしましたが、ADOコマンドを使用してこのデータのテーブルクエリを実行してからテーブルからデータを取り出してテストしましたが(これは途中で動作しましたが、誰かがこのツールを使用するたびにmakeテーブルクエリを実行する必要はありません)。
私は2番目のデータをDAOにプルダウンしました。最初のデータプルはまだADOです(一般的には私が好む)が、DAOに変更することを検討しています。なぜなら、コードに1つのデータアクセスメソッドがあるからです。
なぜ、ADOはデータを1つのケースで取得しないのか説明してもらえますか?繰り返しますが、これは純粋に情報提供のためのものです。
コードを参照しなくてもコメントするのは難しいですが、cusrsorタイプ/レコードセットタイプの問題かもしれません。あなたのコードのデフォルトに頼っていますか?あなただけがAccessで作業している場合、DAOはAccessにとってネイティブであり、ADOよりも多くの制御を提供するため、より良い選択です – SWa
どこでワイルドカードを使用しますか?これは一般的な問題です.ADOの場合、ワイルドカードは%ですが、DAOは(通常)*です。 – Fionnuala
@Remou、私は2つの間のワイルドカードの違いに精通していますが、私は残念なことにクエリでそれらを使用しません。 – APrough