Probleme de requette

Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011
- - Dernière réponse : 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
Afficher la suite 

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
11
0
Merci
Hello,

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

Chris...Web : Firstruner
Commenter la réponse de cboulas
Messages postés
240
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
17 janvier 2013
5
0
Merci
Bonjour,

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

PascalCmoa
email: PascalCmoa
Commenter la réponse de PascalCmoa
Messages postés
58
Date d'inscription
lundi 22 juin 2009
Statut
Membre
Dernière intervention
10 juin 2011
0
Merci
Merci pour vos messages ils m'ont beaucoup aider
Commenter la réponse de gillestang