Comparer élèment d'un textbox avec une BDD access [Résolu]

Messages postés
35
Date d'inscription
lundi 18 février 2008
Dernière intervention
7 avril 2008
- 25 mars 2008 à 16:40 - Dernière réponse :
Messages postés
35
Date d'inscription
lundi 18 février 2008
Dernière intervention
7 avril 2008
- 26 mars 2008 à 22:42
bonjour à tous,

voilà j'ai créé un userform sur excel qui posséde un champs "textbox" et un bouton rechercher.
quand je clique sur le bouton, ca récupère la valeur du textbox pour le comparer à la BDD. une fois qu'il parcours la base access il renvoit dans un treeview les élèments équivalents.

mon problème est que lorsque je fais ma requête une erreur apparait :  "trop peu de paramètres" mais je ne vois pas comment arranger celà .

est ce que quelqu'un pourrait m'aider à ce sujet

merci
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
Messages postés
35
Date d'inscription
lundi 18 février 2008
Dernière intervention
7 avril 2008
- 26 mars 2008 à 22:42
3
Merci
ca tombe bien que tu me dises ca je viens d'utiliser un like dans ma requête au lieu de faire une condition de type mid dans un if et ca marche!!!!
pour ce qui en auront besoin je laisse ma nouvelle requête qui permet de réucpérer dans une BDD les élèments qui ressemble à ce que tappe un utilisateur dans un textview :
Requete6 = "SELECT Install FROM CONSO WHERE Lcase(Install)like '" & chaine & "*'"

chaine étant mon value du textbox.

merci à tous ! bonne soirée

Merci audreyOM 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de audreyOM
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 25 mars 2008 à 16:54
0
Merci
- tu as du commettre une erreur de saisie dans l'orthographe du nom d'un champ. Ce faisant, il pense qu'il s'agit du nom d'un parametre, dont tu as omis de préciser la valeur.

autre possibilité (je pense que tu es dans ce cas):
- tu as omis d'ajouter des ' pour séparer la valeur issue de ton textbox.

SQL = "SELECT * FROM maTable WHERE monChamp='" & Text1.Text & "' "
donnera par exemple:
SELECT * FROM maTable WHERE monChamp='exemple'
Commenter la réponse de Renfield
Messages postés
41
Date d'inscription
lundi 10 mars 2008
Dernière intervention
28 mars 2008
- 25 mars 2008 à 16:54
0
Merci
OM c pour olympik de marseille kan mem pa
Commenter la réponse de nerd24
Messages postés
35
Date d'inscription
lundi 18 février 2008
Dernière intervention
7 avril 2008
- 25 mars 2008 à 17:02
0
Merci
tout d'abord merci pour ton aide !

ensuite, je  n'ai pas oublié de "", ben il me semble que j'ai écrit comme il faut ma requête :

 Requete = "SELECT Install FROM CONSO WHERE Install=" & chaine & ""
        Set RSCONSO6 = BDDCONSO.OpenRecordset(Requete)

dont "chaine" représente le value de mon textbox.

mon erreur apparait au niveau du set RSCONSO6...

*  pour nerd24 : OM oui mais en même temps c'est parce que des audrey y'en a trop donc fallait bien que je mette un truc!
Commenter la réponse de audreyOM
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 25 mars 2008 à 17:12
0
Merci
pas de quote dans ton exemple.....
Requete = "SELECT Install FROM CONSO WHERE Install='" & chaine & "' "

il faut ajouter une ' pour séparer la valeur.... là, tu execute:
SELECT Install FROM CONSO WHERE Install=chaine
au lieu de :
SELECT Install FROM CONSO WHERE Install='<chaine>'
ou <chaine> serait le contenu de ta variable chaine

oui, au niveau du OpenRecordset... avant, ta requete n'est que du texte ^^

nerd24 oublie OM, on n'est pas sur meetic ni sur caramail...
Commenter la réponse de Renfield
Messages postés
41
Date d'inscription
lundi 10 mars 2008
Dernière intervention
28 mars 2008
- 25 mars 2008 à 17:18
0
Merci
a merde j'avais pas vu jme suis trompé de site.jme disé bien ke le sujet dla conversation été bisar
Commenter la réponse de nerd24
Messages postés
35
Date d'inscription
lundi 18 février 2008
Dernière intervention
7 avril 2008
- 25 mars 2008 à 17:25
0
Merci
exacte pour le quote je savais pas.
le seul hic c'est que ca me génère une autre erreur  : "type de données incompatibles dans l'expression du critère" toujours au niveau de mon OpenRecordset.
Commenter la réponse de audreyOM
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 25 mars 2008 à 22:18
0
Merci
Ce serait plus simple si tu mettais tout le bout de code (requête refaite, connexion,...) et expliquer où exactement se produit l'erreur. Si tu passes une chaîne de caractère (textbox) est-ce que le champs est de type texte ou numérique ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 26 mars 2008 à 08:12
0
Merci
apparemment, pas de type Texte, il ne faudra donc pas de quotes...
a voir si on n'a pas une date en face, ou un numérique... (décimal ?)

reste qu'il semble étrange (stupide) de demander a éxtraire uniquement un champ, celui dont on connait la valeur:

SELECT Install FROM CONSO WHERE Install=...
Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 26 mars 2008 à 08:14
0
Merci
euh... concernant la requete, si, il y a bien une raison possible: compter le nombre de lignes...

jouer en ce cas avec :
SELECT COUNT(0) FROM CONSO WHERE Install=...

ramènera 1 enregistrement de1 nombre entier...
plus léger en mémoire que de ramener un nombre indeterminé de valeurs dans le seul but de les compter
Commenter la réponse de Renfield
Messages postés
35
Date d'inscription
lundi 18 février 2008
Dernière intervention
7 avril 2008
- 26 mars 2008 à 19:14
0
Merci
je suis bête, ca venait bien de ma variable "install" de ma condition where, il me faut bien un quote, c'est moi qui ait fait une étouderie et du coup elle était pas considérée comme chaine mais bien décimal comme tu me l'as si bien dit !!!!
je suis désolée de vous avoir fait perdre votre temps car t'as première proposition était la bonne. là ma requête marche bien!!


une autre question rapide : est ce que c'est possible de comparer le début du mot rentré dans le textbox avec la BDD et renvoyer tous les élèments susceptibles de répondre à la demande. car pour l'instant j'arrive à récupérer mais si le mot est bien orthographié (pas de pb de majuscule ni minuscule ca j'ai trouvé). j'ai essayé avec mid : Mid(LCase(chaine), 1, 3) = Mid(LCase(RSCONSO6!Install), 1, 3) mais ca fonctionne pas correctement si vous avez une idée sinon c'est pas grave !

merci pour tous !! et encore désolée
Commenter la réponse de audreyOM
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 26 mars 2008 à 21:54
0
Merci
Peut-être pourrais-tu regarder du côté de LIKE ?
Tu pourrais l'utiliser avec les "wildcards" comme * pour plusieurs caractères non définis ou ? pour un seul caractère.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.