Hier geht es nicht um die Frage, was besser ist, sondern vielmehr darum, warum sie sich funktional unterscheiden. Das Problem, auf das ich gestoßen bin, wurde behoben, aber ich bin neugierig, warum dieses Verhalten auftritt.
Hintergrund - Verwendung von Excel vba zum Abrufen von Daten aus einer Access-Datenbank. Wenn der Benutzer auf eine Schaltfläche klickt, wird ein Datensatz aus Access gezogen, der verschiedene Daten in das Arbeitsblatt einträgt. Dann wird ein anderer Datensatz aus einer anderen Abfrage gezogen, um einen anderen Teil des Arbeitsblatts aufzufüllen.
Was ADO macht - ADO funktioniert hervorragend für meinen ersten Datensatz. Mein zweiter Datensatz geht jedoch zur Abfrage in Access, wird ausgeführt und gibt keine Zeilen zurück. Wenn ich diese Abfrage in Access ausführe, öffnet sie sich (nach etwa 3 bis 4 Sekunden). Diese Abfrage enthält mehrere Verknüpfungen, berechnete Elemente, Begrenzungen und möglicherweise Unionsabfragen (ich habe sie auf viele verschiedene Arten ausprobiert, mit/ohne Union usw.). Ich habe versucht, die Ado-Verbindung zu schließen und erneut zu öffnen. Ich habe versucht, Timeout-Werte zu ändern, und ich habe sogar getestet, einen ADO-Befehl zu verwenden, um Make-Table-Abfragen für diese Daten auszuführen und dann stattdessen aus der Tabelle zu ziehen (dies hat übrigens funktioniert, ist aber nicht der beste Fall, da sich die Daten ständig ändern und ich nicht jedes Mal, wenn jemand dieses Tool verwendet, die Make-Table-Abfrage ausführen möchte).
Also änderte ich den zweiten Datenzugriff auf DAO, und siehe da, es funktioniert. Der erste Data Pull ist immer noch ADO (was ich im Allgemeinen bevorzuge), aber ich überlege jetzt, ihn in DAO zu ändern, weil ich lieber eine einzige Datenzugriffsmethode im Code hätte.
Kann mir also jemand erklären, warum ADO die Daten in einem Fall nicht abruft, DAO aber schon? Nochmals, dies ist rein zu Informationszwecken.