Requete VBA / Prob condition WHERE

Fermé
marcoboulot Messages postés 2 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 3 septembre 2008 - 3 sept. 2008 à 14:18
basshero816 Messages postés 115 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 5 août 2010 - 3 sept. 2008 à 15:04
Bonjour à tous,

je découvre un peu les requetes sous VBA Access, et j'ai un probleme sur la condition WHERE,
j'aimerai récupérer la valeur d'une zone de liste modifiable et l'intégrer dans cette dite requete.
La requete suivante fonctionne bien :

Set rs = CurrentDb.OpenRecordset("SELECT evenement_of.* FROM evenement_of WHERE ofs= '735434'")

mais quand je remplace '735434' par 'badge.value', cela ne fonctionne plus.
Set rs = CurrentDb.OpenRecordset("SELECT evenement_of.* FROM evenement_of WHERE ofs= '"+ badge.Value+"'")

Badge est le nom de cette liste.
J'ai tout essayé avec les " ' &, rien, je galère.
Mais ensuite j'ai pensé à passer 'badge.Value' par Val(badge.value), pour aligner le type du format. Sachant que le champs 'ofs' est du texte. Mais toujours rien.

si vous avez des solutions, je suis preneur,

Merci d'avance.

3 réponses

basshero816 Messages postés 115 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 5 août 2010 6
3 sept. 2008 à 14:26
Salut,
Tout d'abord, le mieux est de créer une requête sous forme de String, puis ensuite tu l'exécute.

Tu fais donc :

Dim sql As String
Dim rs As Recordset

sql = " SELECT * FROM evenement_of WHERE evenement_of.ofs LIKE ' " & Me.badge.Value & " ' ; "
Set rs = CurrentDb.OpenRecordset (sql)


N'oublie pas le ";", vérifie que tu as bien dans ton formulaire une zone de texte ou de liste déroulante qui s'appelle "badge". Si ce n'est pas le cas tu dois écrire le chemin complet jusqu'à cette valeur à la place du "Me.badge.Value".

Et dis-moi si cela s'arrange!
@+
0
marcoboulot Messages postés 2 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 3 septembre 2008
3 sept. 2008 à 14:44
merci pour la rapidité de ta réponse,
j'ai essayé ton code, mais toujours rien,
j'ai la fameuse fenetre "Pas d'enregistrement courant"
si tu vois autre chose?
0
basshero816 Messages postés 115 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 5 août 2010 6
3 sept. 2008 à 15:04
Ce que tu peux faire, c'est essayer d'exécuter ta requête directement, et voir si elle te renvoie quelque chose.

Dans ton éditeur de requête, sous forme SQL, tape :

SELECT * FROM evenement_of WHERE evenement_of.ofs LIKE Formulaires![nom_formulaire]!badge.Value ;

[nom_formulaire] est le nom du formulaire où se trouve la liste déroulante ou la zone de texte que tu as nommé "badge".

N'oublie pas auparavant d'ouvrir le formulaire et de mettre une valeur dans la liste ou la zone de texte "badge".
Si ta requête ne renvoie rien, c'est un problème de conception de la base de données.

@+
0