Probleme requete VBA access

Baker -  
phil_232 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   -
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

9 réponses

blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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"
0
tarek_dotzero Messages postés 817 Date d'inscription   Statut Membre Dernière intervention   122
 
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.
0
Baker
 
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.
0
Baker
 
Le champ BUT_AGITAION_1 est bien une chaine de caratere
0

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

Posez votre question
Baker
 
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
0
blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Tout dépend quel type de champ est N_PROJET et comment est décrite la variable recup dans ton code.
0
Baker
 
N_PROJET est de type numerique et j'ai declarer ma variable recup en integer
0
blux Messages postés 27117 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Le type numérique prend plusieurs valeurs : byte, entier, entier long, réel...
0
phil_232 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   33
 
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.
0