Utilisation du contenu d'une liste dans une requete

Résolu
Hunksit Messages postés 5 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 21 juin 2007 - 21 juin 2007 à 09:00
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 21 juin 2007 à 23:05
slt,
Je  developpe avec vba  access,   quand j'essai  d'utiliser   le contenu d'une  d'une  variable  dans une  requete sql,   ca marche pas , un  message affiche: trop peu de parametres 1 attendu!  .Par  exemple dans ce code je  voudrai utiliser le contenu  de ma  liste   pour  executer une requete  sql  et  afficher le  resultat dans un  formulaire
Si  vous savez  resoudre ce genre de probleme ou un autre de ce genre ; faites moi  de propositions SVP

Private Sub Commande17_Click()
Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
  
    Set db = CurrentDb
   
        sSQL "select Code_composant FROM Tcomposant where designation LIST4.Value ;"
   
   
    Set rst = db.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)
    While Not rst.EOF


Cco = rst(0)
rst.MoveNext


   
   
    Wend
   
    rst.Close

11 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
21 juin 2007 à 11:46
Essaie celle-ci dans ce cassSQL "select Code_composant FROM Tcomposant where designation '" & LIST4.Text & "'"

Si la sélection de List4 peut contenir des apostrophes, il te faudra les doubler. Replace peut être incorporé à la requête pour forcer le doublage.sSQL "select Code_composant FROM Tcomposant where designation '" & Replace(LIST4.Text, "'", "''") & "'"

MPi
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 juin 2007 à 09:05
Salut,
C'est normal essaies plutot:
sSQL <gras>"select Code_composant FROM Tcomposant where designation " </gras>& LIST4.Value & ";"
@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
21 juin 2007 à 09:24
C'est quoi le rapport avec VB.NET si tu fait du vba ???

Je déplace vers le bon forum !
0
Hunksit Messages postés 5 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 21 juin 2007
21 juin 2007 à 10:05
Salut   Ju£i?n
Ce  que  tu  m'as  donné  ne marche pas aussi  parceque list4.Value est  de type  string , donc y  a une erreur  de  syntaxe ,il  me  faut  alors un moyen  de mettre le  string entre  griffe ('') en  faisant  attention car  si  je met 'list4.Value'  le  resultat de la requete est  fause  car  la  requete  va  chercher le  code_composant ou la  designation = au  string( list4.value  )  ce  qui   est  faut !


si  t as d'autres propositions!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 juin 2007 à 10:17
Salut,
et bien si il faut l'entourer de ' ' essaie ceci (question de logique).
sSQL <gras>"select Code_composant FROM Tcomposant where designation '" </gras>
& LIST4.Value & "';"

Si ce n'est pas ca il faut savoir de quel type est designation dans ta table.
@+: Ju£i?n
Pensez: Réponse acceptée
0
Hunksit Messages postés 5 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 21 juin 2007
21 juin 2007 à 11:40
Slt  Julien
Je te remerci pour tes propositions , mais celle  la non plus elle ne marche pas ,  designation  est  un  champ  de type  texte donc le  contenu est   de  type  string;
merci  encore et  si  t'as d'autres proposition !!!!


 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
21 juin 2007 à 11:45
Salut,

Essaye peut-être comme cela dans ta requête:

 '" & List4.List(List4.ListIndex) & "'" 

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
21 juin 2007 à 11:45
Salut,
Le mieux est de faire un Msgbox de ta requete avant de l'executer pour voir si elle te semble correcte.

Est ce que elle retournera bien un résultat.

@+: Ju£i?n
Pensez: Réponse acceptée
0
Hunksit Messages postés 5 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 21 juin 2007
21 juin 2007 à 14:05
 Ca a marché finalement , ta methode étais la bonne , 
merci Mpi et  à tous ceux m'ont  fait  des propositions
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
21 juin 2007 à 14:06
Salut,

t' as bien une ligne sélecionneé au moins ?
si c' est pas le cas , List4.Text renvoie Null

<hr />® l l i n g , l' agité du bocal : 
   ...quotes, double quotes, crochets ou parenthèses ?
   Ah si je pouvais rester dans mes charentaises !
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
21 juin 2007 à 23:05
Salut Chaibat,
effectivement, il faudrait éventuellement vérifier l'état de List4.text avant d'appeler la requête... ou encore sélectionner le 1er item par défaut lors du chargement de la liste.

MPi
0
Rejoignez-nous