Probleme requete VBA access [Fermé]

Signaler
-
phil_232
Messages postés
289
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
12 juin 2008
-
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

Messages postés
23913
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2708
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"
Messages postés
813
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
17 octobre 2019
110
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.
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.
Le champ BUT_AGITAION_1 est bien une chaine de caratere
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
Messages postés
23913
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2708
Tout dépend quel type de champ est N_PROJET et comment est décrite la variable recup dans ton code.
N_PROJET est de type numerique et j'ai declarer ma variable recup en integer
Messages postés
23913
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2708
Le type numérique prend plusieurs valeurs : byte, entier, entier long, réel...
Messages postés
289
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
12 juin 2008
31
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.