Code vba génerateur de requête

Fermé
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017 - 4 mai 2015 à 11:15
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017 - 7 mai 2015 à 13:37
Bonjour,

Je souhaite avoir un bout de code qui génère une requête à partir d'une table existante.
Est-ce que c'est possible?

Merci à vous
A voir également:

1 réponse

Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
4 mai 2015 à 12:14
Bonjour,
Exemple à compléter
Dim MaReq As QueryDef
Dim TxtSql As String

TxtSql = "SELECT * FROM matable WHERE ...."
Set MaReq = CurrentDb().CreateQueryDef("LeNomDeMaRequete", TxtSql)

1
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
4 mai 2015 à 13:06
Merci Thorak!
Je teste et reviens vers toi!
0
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
4 mai 2015 à 13:22
ça marche nickel faut juste enlever le WHERE .... et la requite se crée
0
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
4 mai 2015 à 13:37
Juste j'ai remarqué qu'on doit avoir une table et que son nom doit apparaitre dans le code. On peut pas le faire en utilisant une variable qui change de nom
Parce que là à chaque generation de requite je dois changer le nom de la table
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
Modifié par Thorak83 le 4/05/2015 à 14:28
le WHERE dépend de la requête que vous voulez créer. (notez les 3 petits point après)
Bien sur qu'on peut mettre une variable comme nom de requête. Mais peut être vaut-il mieux en avoir qu'une et qu'elle s'écrase à chaque fois sinon le nombre de requête risque d'augmenter considérablement.
voici le code à mettre juste avant le set MaReq ...
  On Error Resume Next
CurrentDb().QueryDefs.Delete "LeNomDeMaRequete"
On Error GoTo 0

au cas ou vous désirez n'avoir qu'une requête. (elle sera supprimer a chaque exécution avant la création)
0
massimo888 Messages postés 203 Date d'inscription mercredi 11 juin 2014 Statut Membre Dernière intervention 7 avril 2017
4 mai 2015 à 17:01
Je crée une requite à la fois et je la garde en mémoire. et je definis son nom avec un inputbox.
Je teste et je reviens vers vous
0