Comment mettre en œuvre une dynamique de Requête SQL sur MS Access 2003 par VBA?
C'est un super base question, mais je suis en train d'exécuter une Requête que je suis en train de construire par le biais de certaines valeurs d'un formulaire à l'encontre de la base de données MS Access se trouve le formulaire. Je ne pense pas que j'ai besoin d'aller à travers ADO officiellement, mais peut-être je ne.
De toute façon, un peu d'aide serait appréciée. Désolé d'être un n00b. 😉
Pouvez-vous préciser si vous modifiez les données dans la base de données ou de lecture pour l'affichage? J'ai besoin de savoir avant de voter l'une des réponses 🙂
OriginalL'auteur Tim Visher | 2008-09-25
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le code DAO suivant la requête d'un Accès de base de données:
Dans mon cas, ClassID est une zone de texte sur le formulaire.
If Not rs.EOF Then
?J'ai édité pour inclure le "pas rs.EOF" et de la rs.movenext.
OriginalL'auteur jinsungy
C'est ce que j'ai fini par venir avec qui fonctionne réellement.
Enregistrer vous-même un ensemble et l'utilisation CurrentDb.OpenRecordset(). Il n'y a pas besoin de faire de la base de données distincte de l'objet.
Je pense que l'exemple de code doit utiliser les meilleures pratiques, et CurrentDB.OpenRecordset() dans DAO possible de laisser un objet explicite de référence de la pendaison. Deuxièmement, l'exemple de code, c'est l'endroit où vous auriez du ouvrir un de la base de données que l'actuel, ainsi que des exemples de code, je pense que c'est mieux.
OriginalL'auteur Tim Visher
Ici juste au cas où vous vouliez une ADO version:
DAO et ADO sont très proches dans l'utilisation. Vous obtenez plus de contrôle à l'aide de DAO et de la performance légèrement meilleure avec ADO. Dans la plupart des accès base de données des applications que j'ai rencontré il n'a pas vraiment faire une différence. Quand j'ai vu une grande différence avec les tables liées. ADO joue souvent mieux.
OriginalL'auteur Brettski
Les réponses que vous avez donné et que vous avez l'air d'accepter de faire une boucle par un jeu d'enregistrements DAO. C'est généralement une méthode inefficace de l'accomplissement d'un texte. Par exemple, ceci:
sera beaucoup moins efficace que:
qui peut être exécuté avec:
Il est très rarement le cas que l'on doit parcourir un jeu d'enregistrements, et dans la plupart des cas une mise à jour SQL va être ordres de grandeur plus rapide (ainsi que causer beaucoup plus courte de lecture/écriture de verrous pour être tenu sur les pages de données).
Affichage en quoi? Un formulaire? Si oui, alors ce n'est pas la meilleure façon de le faire. Si, dans un rapport, c'est vraiment ce n'est pas la meilleure façon de le faire. Pour moi, "l'exécution d'une requête" signifie "mise à jour des données via une requête," mais peut-être que je suis en train de lire l'OP de mal.
En fait, ils ont dit "exécuter une Requête": big Q = grosse différence. Une requête (petit q) est un DML SQL SELECT, qui serait prehap implique un jeu d'enregistrements. Une Requête (big Q) est un MS Access (pas de Jet, pas ACE) de l'objet qui peut contenir n'importe quelle instruction SQL: SELECT/INSERT/UPDATE/DELETE SQL DML, même SQL DDL ou SQL DCL.
OriginalL'auteur David-W-Fenton