Probleme requete VBA access

Fermé
Baker - 4 févr. 2008 à 11:00
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 - 4 févr. 2008 à 20:15
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 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
4 févr. 2008 à 11:04
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 jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
4 févr. 2008 à 11:13
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
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
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
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 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
4 févr. 2008 à 14:59
Tout dépend quel type de champ est N_PROJET et comment est décrite la variable recup dans ton code.
0
N_PROJET est de type numerique et j'ai declarer ma variable recup en integer
0
blux Messages postés 25978 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 19 avril 2024 3 287
4 févr. 2008 à 15:33
Le type numérique prend plusieurs valeurs : byte, entier, entier long, réel...
0
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 33
4 févr. 2008 à 20:15
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