Différence entre ADO et DAO
Ce n'est pas une question à propos de ce qui est mieux, mais plutôt une question au sujet de pourquoi ils diffèrent fonctionnellement. Le problème que j'était en cours d'exécution en a été traitée, mais je suis curieux de savoir pourquoi ce comportement qui se passe.
De fond - à l'aide de vba Excel pour extraire des données à partir d'une base de données Access. Lorsque l'utilisateur clique sur un bouton, un jeu d'enregistrements est tiré de l'Accès, et il remplit diverses données de la feuille de calcul. Ensuite, un autre jeu d'enregistrements est tiré à partir d'une autre requête pour remplir une autre partie de la feuille de calcul.
Quel ADO - ADO fonctionne très bien pour mon premier jeu d'enregistrements. Cependant, mon deuxième jeu d'enregistrements va à la requête dans Access, les courses, et ne retourne aucune ligne. Si j'exécute cette requête dans Access, il ne s'ouvrir (après environ 3 à 4 secondes). Cette requête a plusieurs jointures, calculée articles, des limites, et, éventuellement, de l'Union des requêtes (je l'ai essayé beaucoup de différentes manières, avec ou sans union,etc.). J'ai essayé de fermer et de rouvrir la connexion ado. J'ai tenté de changer les valeurs de délai d'attente, et j'ai même testé à l'aide d'un ADO de commande pour Faire exécuter les requêtes de table pour ce type de données, puis tirez-le à partir de la table à la place (cela a fonctionné par le chemin, mais n'est pas le meilleur des cas, car les données changent continuellement, et je ne veux pas avoir à exécuter la requête création de table à chaque fois que quelqu'un utilise cet outil).
Ainsi, j'ai changé le second données tirez-le pour le DAO, et voilà, ça fonctionne. Les premières données de traction est encore ADO (qui en général, je préfère utiliser), mais je suis maintenant étudier la possibilité de modifier à DAO, parce que je préfère avoir une méthode d'accès aux données dans le code.
Donc, quelqu'un peut m'expliquer pourquoi ADO ne tirez pas les données dans un seul cas, mais DAO? Encore une fois, c'est purement à titre informatif.
source d'informationauteur APrough
Vous devez vous connecter pour publier un commentaire.
DAO est le natif de méthode d'accès aux données pour le Jet (Ms-Access) tableaux de données. ADO "Active X Objets de Données" est une industrie amical connexion à presque tous les types de base de données.
Avec une requête standard il n'y a pas de raison, dans ce cas, pourquoi l'ADO doit renvoyer aucun enregistrement où DAO fait, je soupçonne que c'est que la requête doit également contenir des paramètres relatifs à des éléments dans la base de données Access. Si c'est le cas, alors ADO ne fonctionnera pas, car il n'aura pas la possibilité d'utiliser des paramètres comme dit c'est juste une référence externe à Excel, à l'aide de la méthode DAO sera le déclencheur d'Accès pour exécuter la requête plutôt que Excel et comme tel, il sera en mesure d'accéder à ses propres paramètres/références.
Je pense que cette question a été répondue déjà très bien, mais je veux ajouter un autre excellent (quoique un peu difficile à trouver) des ressources pour la comparaison de DAO et ADO. Elle est destinée principalement à l'Accès des applications à Accéder à des formulaires et des rapports, mais une grande partie de l'information est ici pour une solution écrite dans Excel.
UtterAccess Article de Wiki: le Choix entre ADO et ADO
Dans Visual Basic, trois interfaces d'accès aux données qui vous sont offertes: ActiveX Data Objects (ADO), RDO (Remote Data Objects), et les Objets d'Accès aux Données (DAO). Un accès aux données de l'interface est un modèle d'objet qui représente les différentes facettes de l'accès aux données. À l'aide de Visual Basic, vous pouvez contrôler par programme de la connexion, l'état des constructeurs, et a renvoyé des données pour une utilisation dans n'importe quelle application.
Pourquoi il y a trois interfaces d'accès aux données en Visual Basic? Technologie d'accès aux données est en constante évolution, et chacune des trois interfaces représentent un autre état de l'art. La dernière est ADO, qui dispose d'une plus — encore plus souple — modèle d'objet que ce soit RDO ou DAO. Pour les nouveaux projets, vous devez utiliser ADO que vos données d'accès de l'interface.