Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/09/2011, 00h49   #1
Invité régulier
 
Inscription : août 2008
Messages : 25
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 25
Points : 7
Points : 7
Par défaut Lecture de code SQL et creation requete

Bonjour,

Dans une base Access 2003, je crée une instruction SQL basée sur des choix fait dans un formulaire indépendant.
Les champs sont sélectionnés par une constante publique (CstSourceFiltre) définie dans un module auquel se rajoute une instruction "WHERE..." batie au fur et à mesure des choix fait sur les controles du formulaire. Elle est placée dans une variable publique (p_strsqlWhere).

Le résultat apparait bien et conforme à la sélection faite dans une zone de liste, donc il n'y a pas d'erreur de rédaction dans la variable.

Je voudrais sauvegarder le résultat d'une sélection donnée dans un réquete pour pouvoir ensuite générer des formulaires et états à partir de la.

Voici le code que j'utilise:

Code :
1
2
3
4
5
6
Dim qdfNew As QueryDef
   With Application.CurrentDb
      ' Create permanent QueryDef.
      Set qdfNew = .CreateQueryDef("Q200", cstSourceFiltre & p_sqlwhere & " ORDER BY T01_candidat.nomcandidat")
      .Close
   End With
La requete est bien créé avec tous les champs de cstSourceFiltre et le choix fait dans "ORDER BY..." est bien pris en compte par contre rien de ce que contient p_strsqlWhere n'est passé à la requète.

Avez vous une solution, celle-ci ou une autre voie.
Merci d'avance
pedro91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 09h23   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 089
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 089
Points : 11 622
Points : 11 622
Bonjour,

Il te faut supprimer d'abord Q200 avant de la recréer.
Sinon p_strsqlWhere c'est pas pareil que p_sqlWhere. Met systèmatique Option Explicit dans tes Modules ça évite ce genre d'erreur.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2011, 23h44   #3
Invité régulier
 
Inscription : août 2008
Messages : 25
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 25
Points : 7
Points : 7
Par défaut Merci pour la réponse

Merci de s'etre penché sur une erreur aussi bète, l'option explicit est effectivement bien utile, de même que de systématiquement mettre quelques lettres en majuscule dans les définitions de variables (genre idNomEmploye), on voit immédiatement lors de la frappe si on a fait une boulette!

Sur le fond, j'avais trouvé l'erreur ce matin mais j'ai fini par seulement modifier la requète par la commande:
Code :
CurrentDb.QueryDefs("Q200").SQL = cstSourceFiltre & p_strsqlWhere & " ORDER BY T01_candidat.NomCandidat"
Cela permet de mettre tranquillement au point les formulaires et etats qui en découlent.

Encore merci pour la précision de ta lecture!
pedro91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h38.


 
 
 
 
Partenaires

Hébergement Web