Probleme requete VBA access

Bonjour,

Je bloque sur ce code depuis quelques jours et je sui novice en VB .
modifiable46 est une liste deroulante mais certain element de cette liste comportent un espace ce qui me retourne une erreur.
Comment faire pour regler ce probleme??

De plus j'obtien une erreur "Trop peu de parametre, 1 attendu" lors de l'ouverture du recordset
d'ou vient cette erreur??

Private Sub Commande48_Click()
Dim reqsql As String
Dim agit As String
Dim jeuenregistrement
Dim recup As String

agit = Me.Modifiable46
If agit <> "" Then
reqsql = "select * from PROJETS where [BUT_AGITATION_1]=" & agit
MsgBox reqsql
Set jeuenregistrement = CurrentDb.OpenRecordset(reqsql)
While Not jeuenregistrement.EOF
recup = jeuenregistrement.Fields("BUT_AGITATION_1").Value + Chr(10)
jeuenregistrement.MoveNext
If recup <> "" Then
recuper = recup + recuper
End If
Wend
msg = "Les projets suivant correspondent à votre requete : "
MsgBox msg & recuper
End If

merci d'avance pour votre aide
Configuration: Windows XP
Internet Explorer 7.0

9 réponses

  1. Modérateur
    Salut,

    il faut mettre ta valeur entre quotes :
     reqsql = "select * from PROJETS where [BUT_AGITATION_1]='" & agit & "'" 
    --

    A+ Blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    1. Et même pour initialiser agit:

      agit = modifiable46.value

      la remarque de Blux est valide si le champs BUT_AGITATION_1 est de type chaine de caractères dans la base de données.
      1. Merci Blux pour ton aide ca a résolu tou mes problémes mais une nouvelle est apparu.

        Lorsqu'un element recherché existe l'erreur suivant aparait : "Propriété ou méthode non gerer par cette objet."

        J'ai essayé d'enlever le .value dans cette ligne "recup = jeuenregistrement.Fields("BUT_AGITATION_1").Value + Chr(10) "
        mais l'erreur aparait toujour.
        1. Encore un petit probleme avec mon code

          agit = Me.Modifiable46
          If agit <> "" Then
          reqsql = "select * from PROJETS where [BUT_AGITATION_1]='" & agit & "'"
          MsgBox reqsql
          Set jeuenregistrement = CurrentDb.OpenRecordset(reqsql)
          While Not jeuenregistrement.EOF
          recup = jeuenregistrement.Fields("N_PROJET").Value + Chr(10)
          jeuenregistrement.MoveNext

          J'ai une incompatibilté de type lorsque je veu recuperer N_PROJET

          Quelqu'un peut-il m'aider??
          Merci
          1. Modérateur
            Tout dépend quel type de champ est N_PROJET et comment est décrite la variable recup dans ton code.
            1. N_PROJET est de type numerique et j'ai declarer ma variable recup en integer
              1. Modérateur
                Le type numérique prend plusieurs valeurs : byte, entier, entier long, réel...
                1. hm, pourtant Access est bien capable de convertir le type. il vaut donc mieux de mettre des guillemets, même s'il s'agit d'un numérique.