cs_lolodero
Messages postés21Date d'inscriptionsamedi 24 mai 2008StatutMembreDernière intervention20 février 2009
-
4 févr. 2009 à 07:08
cs_lolodero
Messages postés21Date d'inscriptionsamedi 24 mai 2008StatutMembreDernière intervention20 février 2009
-
6 févr. 2009 à 05:15
Salut à tous,
je suis en train de réalisé une requète en vba, requète ou le résultat sera affiché dans une liste box.
mais j'ai un problème lors de l'éxécution rien ne se passe.
je vous montre mon code:
Private Sub refresh_query()
Dim SQL As String
Dim SQLWhere As String
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 4 févr. 2009 à 09:35
Oui, pour les espaces :
..."Where SOCIETE.IDSoc=CLIENT.IDSoc " & _
^
"And CLIENT.IDClient=PRENDRE.IDClient " & _ ...
^
sinon, la syntaxe de ta requète ressemblerait à "... IDSocAnd CLIENT...."
Avec les requètes SQL, pense à faire un arrêt avec le debug F9 et visualise le contenu de ta requète dans la fenêtre de debug (Ctrl-G) avec la simple commande
? SQL
(? = raccourci pourPrint)
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_lolodero
Messages postés21Date d'inscriptionsamedi 24 mai 2008StatutMembreDernière intervention20 février 2009 4 févr. 2009 à 10:27
Merci pour vos réponse super rapide,
alors g suivi vos conseil mais g toujours aucune érreur, je ne compren pas.
ma requète ne fonctionne pas, et g pas d'érreur. vous ne pensez pas que la syntaxe ne peut ne pas etre bonne? vous avez des proposition?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 4 févr. 2009 à 12:36
Re
Es-tu sûr d'avoir bien ajouté les espaces partout où c'est nécessaire ?
Que donne une syntaxe simple comme :
SQL = "Select CLIENT.NomClient" & _
" From CLIENT"
histoire d'être sûr que le problème vient de la requète.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 4 févr. 2009 à 12:52
Suggestion de présentation :
SQL = "Select CLIENT.NomClient, " & _
" CLIENT.PrenomClient, " & _
" COURS.NomCours, " & _
" SOCIETE.NomSoc, " & _
" FORMATEUR.NomFormateur, " & _
" FORMATEUR.PrenomFormateur " & _
" From CLIENT, SOCIETE, PRENDRE, COURS, NIVEAU, " & _
" VERSION, ENSEIGNER, FORMATEUR " & _
" Where SOCIETE.IDSoc = CLIENT.IDSoc " & _
" And CLIENT.IDClient = PRENDRE.IDClient " & _
" And PRENDRE.IDCours = COURS.IDCours " & _
" And COURS.IDNiveau = NIVEAU.IDNiveau " & _
" And COURS.IDVersion = VERSION.IDVersion " & _
" And COURS.IDCours = ENSEIGNER.IDCours " & _
" And ENSEIGNER.IDFormateur = FORMATEUR.IDFormateur " & _
" And CLIENT ! IDClient <> 0 " & _
" And CLIENT.IDClient = '" & Me.cbonom.Text & "'"
Do While InStr(1, SQL, " ") ' Histoire de retirer les espaces inutiles
SQL = Replace(SQL, " ", " ")
Loop
As-tu remarqué que tu utilisais un ! dans ta syntaxe (dernières lignes) ?
Rappel : Si IDClient est défini comme un champ numérique dans la DB, il ne faut pas d'encadrement (les ' ) de la valeur :
" And CLIENT.IDClient = " & Me.cbonom .Text
Vala
Jack, =fr MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 4 févr. 2009 à 12:56
Au fait, comment IDClient peut-il être testé <> 0 alors qu'on lui demanderait une comparaison de texte ensuite ?
Une des 2 dernières lignes est de trop.
Si tu dois tester que <> 0, il faut le faire sur cboNom avant de faire la requète.
Erreur de champ ?
Ne serait-ce plutôt CLIENT.NomClient que tu recherches ?
cs_lolodero
Messages postés21Date d'inscriptionsamedi 24 mai 2008StatutMembreDernière intervention20 février 2009 5 févr. 2009 à 05:38
Wai tu as raison as propos des deux lignes de la fin, g supprimé la clause <>0.
En fait l'IDClient correspond a son numéro de carte d'identité, donc sa le rend vraiement unique contrairement au nom.
Merci pour tes proposition, je les ai appliqué et je débouche sur un msg d'érreur: Erreur de syntaxe dans la clause FROM, g bo chercher je ne voi vraiment pas ou est le problème.
cs_lolodero
Messages postés21Date d'inscriptionsamedi 24 mai 2008StatutMembreDernière intervention20 février 2009 6 févr. 2009 à 05:15
Salut à tous,
Le problème est réglé!!!
Au fait l'érreur vennait du fait que la combo "cbonom" revoyait le nom du client alors que je croyait qu'elle renvoyait son Identifiant.
Donc g changé la requète qui génère la combo et sa marche!!!
voila, merci pour tes conseil Jack tu ma bien aider à voir plus claire dans mon programme.