audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008
-
25 mars 2008 à 16:40
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDerniè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à .
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008 26 mars 2008 à 22:42
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 & "*'"
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 mars 2008 à 16:54
- 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'
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 mars 2008 à 17:12
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...
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008 25 mars 2008 à 17:25
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.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 25 mars 2008 à 22:18
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
audreyOM
Messages postés35Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 7 avril 2008 26 mars 2008 à 19:14
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 !
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 26 mars 2008 à 21:54
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