Probleme de requette

gillestang Messages postés 58 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 10 juin 2011 - 28 oct. 2009 à 10:57
gillestang Messages postés 58 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 10 juin 2011 - 7 nov. 2009 à 12:04
Bonjour je voudrai soulicité de l'aide de la j'ai une requette qui marche bien sur access mais lorsque je l'a mais dans mon code VB il génére des erreurs voisi la requette si quelqu'un peu m'aide à comprendre ce qui ne va pas et commen je peu la coriger :

"
SELECT MEDICAMENTS.INDEX, MEDICAMENTS.SPECIALITE, MEDICAMENTS.DOSAGE, MEDICAMENTS.UNITE, MEDICAMENTS.PRESENTATION, MEDICAMENTS.DCI1, MEDICAMENTS.DCI2, MEDICAMENTS.DCI3, MEDICAMENTS.PRIX, MEDICAMENTS.FAMILLE, MEDICAMENTS.INDICATION, MEDICAMENTS.MULTIPLE, MEDICAMENTS.POSOLOGIE, MEDICAMENTS.NBR, MEDICAMENTS.JOURS, MEDICAMENTS.COMMENTAIRE, MEDICAMENTS.BOITE, MEDICAMENTS.BIOLOGIE, MEDICAMENTS.RADIO, MEDICAMENTS.Autres, MEDICAMENTS.MATIN, MEDICAMENTS.MIDI, MEDICAMENTS.SOIR, MEDICAMENTS.COUCHE, CStr(IIf([MEDICAMENTS]![SPECIALITE] Is Not Null,[MEDICAMENTS]![SPECIALITE],""))+" "+CStr(IIf([MEDICAMENTS]![DOSAGE] Is Not Null,[MEDICAMENTS]![DOSAGE],""))+" "+CStr(IIf([MEDICAMENTS]![UNITE] Is Not Null,[MEDICAMENTS]![UNITE],""))+" "+CStr(IIf([MEDICAMENTS]![PRESENTATION] Is Not Null,[MEDICAMENTS]![PRESENTATION],"")) AS Expr1
FROM MEDICAMENTS
WHERE (((MEDICAMENTS.SPECIALITE) Is Not Null))
ORDER BY MEDICAMENTS.SPECIALITE;
"

au fait l'objectif que je vise est de pour voir faire une requette select aves ces variables et ajouter une variable expression qui sera la somme de trois autre variable specialité + dossage + unité + famille.
au cas ou il y est d'autre façon de le faire merci. Bonne journée

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 oct. 2009 à 11:42
Salut
Et quelle est l'erreur ?
Tu comprendras que ta requète, présentée comme ça, est totalement illisible.
Il faut du courage aux membres pour se lancer dans le décryptage !

-1- l'éditeur VB doit sauter au plafond avec cette ligne puisqu'il y a un problème de "
Cette requête est encadrée par des ".
Si tu dois ahouter des " à l'intérieur, il faut doubler les ".
Par chance, SQL accepte le symbole ' pour l'encadrement des chaines.
Donc, remplace " par ' à l'intérieur de ta requète

-2- CStr et IIf sont des instructions VB
Il n'est pas possible de les utiliser dans une requète.
Il faut utiliser l'instruction SQL IsNull, exemple :
"Select IsNull(MEDICAMENTS.PRESENTATION, '')"

-3- Puisque tu n'interroges qu'une seule table, il n'est pas nécessaire de répéter le nom de cette table devant chaque champ --> simplification

-4- Pourquoi utiliser un format différent ?
Un coup tu utilises MEDICAMENTS.COUCHE
et ensuite [MEDICAMENTS]![DOSAGE]
Je ne suis même pas sûr qu'une telle syntaxe soit autorisée !

Voilà donc ta requète compatible avec VB.Net :
        Dim sRequete As String = _
            "SELECT INDEX, " & _
                   "SPECIALITE, " & _
                   "DOSAGE, " & _
                   "UNITE, " & _
                   "PRESENTATION, " & _
                   "DCI1, " & _
                   "DCI2, " & _
                   "DCI3, " & _
                   "PRIX, " & _
                   "FAMILLE, " & _
                   "INDICATION, " & _
                   "MULTIPLE, " & _
                   "POSOLOGIE, " & _
                   "NBR, " & _
                   "JOURS, " & _
                   "COMMENTAIRE, " & _
                   "BOITE, " & _
                   "BIOLOGIE, " & _
                   "RADIO, " & _
                   "Autres, " & _
                   "MATIN, " & _
                   "MIDI, " & _
                   "SOIR, " & _
                   "COUCHE, " & _
                   "IsNull(SPECIALITE), '') + ' ' + " & _
                   "IsNull(DOSAGE,'') + ' ' + " & _
                   "IsNull(UNITE, '') + ' ' + " & _
                   "IsNull(PRESENTATION, '') AS Expr1" & _
            "  From MEDICAMENTS" & _
            " Where SPECIALITE Is Not Null" & _
            " ORDER BY SPECIALITE;"

PS : J'ai remarqué que ton français n'était pas très bon. J'ai failli t'en faire la remarque, mais j'ai découvert que tu étais au Burkina Faso.
--> Renseigne le champ "Pays" dans ton profil, cela évitera que les membres ne te fasse des remarques à propos du français

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
28 oct. 2009 à 16:50
Hello,

Juste pour précisez, ton principal pb venait de tes ""

Chris...Web : Firstruner
0
PascalCmoa Messages postés 239 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 17 janvier 2013 5
28 oct. 2009 à 17:49
Bonjour,

On peut remplacer le test isnull(monChamp,'') par coalesce(monChamp, '') c'est plus clair

PascalCmoa
email: PascalCmoa
0
gillestang Messages postés 58 Date d'inscription lundi 22 juin 2009 Statut Membre Dernière intervention 10 juin 2011
7 nov. 2009 à 12:04
Merci pour vos messages ils m'ont beaucoup aider
0
Rejoignez-nous