ptit_lu78
Messages postés7Date d'inscriptionjeudi 30 septembre 2004StatutMembreDernière intervention29 octobre 2004
-
12 oct. 2004 à 16:20
ptit_lu78
Messages postés7Date d'inscriptionjeudi 30 septembre 2004StatutMembreDernière intervention29 octobre 2004
-
15 oct. 2004 à 10:13
Bonjour..
1er post sur ce forum, je vous remercie donc d'avance pour votre indulgence..
Je programme une application Access 2000 avec du vba 6.0 pour la config
Mon probleme est assez simple.. je dois chercher une chaine de caractere présente dans une autre chaine..le fonction filter parait donc evidente.. Malheureusement je n'arrive pas à coder cette fonction..je cherche de la doc sur internet sans succes..
Voilà le code :
"test(1) = Filter(NomVol, Aeroport, True, 0)"
Le debuggeur me renvoie :
"Erreur de compilation
Nombre d'arguments incorrect ou affectation de propriété incorrecte"
Je ne voie vraiment pas d'où ça peut venir..je suis bloqué la-dessus depuis 3 jours...
Voilà..j'espere avoir été complet.. Je suis preneur pour tout conseil ou si quelqu'un connait de la doc..
Merci d'avance,
Lucien
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 12 oct. 2004 à 21:59
salut
filter sert à renvoyer un tableau contenant les chaines d'un tableau source (SourceArray) qui contiennent (ou pas (suivant Include)) une chaine de caractère spécifiée...en gros, en entrée tu as ton tableau de chaines et ta chaine à rechercher et en sortie tu as le même tableau sans les chaines qui ne contiennent pas ta chaine à rechercher...
ce la permet de "trier" un tableau et pas une seule chaine...
donc déjà : test = Filter(NomVol, Aeroport, True, 0) si nomvole est un tableau et test aussi
par contre, la fonction Instr te renvoie la position d'une chaine dans une autre...ou 0 sinon...
la valeur 20 pour Compteur est juste arbitraire et n'est là que pour vérifier le fonctionnement de la fonction.. Si j'utilise la fonction filter à la place de Instr c'est que j'ai besoin de l'option Include = True.. J'ai besoin de savoir si NomVol contient tout ou une partie de Aeroport..
J'espeer que ca eclairera le probleme d'avantage et encore merci pour votre aide..
cs_lacomm
Messages postés298Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention 5 juillet 20131 13 oct. 2004 à 15:31
Je sais pas si ca peut t'aider: j'utilise ADO et les bases de données access, et avec Instr, on peut comparer les champs d'un recordset.
Tu pourrais peut-être aussi utiliser Like en le parametrant comme ceci:
if "aeroport" like rst(i ) then include=false
if "aeroport*" like rst(i) then include = true
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 13 oct. 2004 à 16:52
salut
si tu veux juste savoir si NomVol contient tous les aéroports tu peux faire :
for i = 0 to ubound(TableauTaxeSupplément)
if instr(NomVol, Split(TableauTaxeSupplément(i).description)(2)) <= 0 then
'on a un aeroport qui n'est pas dans NomVol
else
'on a aeroport dans NomVol
end if
next
ShareVB
Vous n’avez pas trouvé la réponse que vous recherchez ?
ptit_lu78
Messages postés7Date d'inscriptionjeudi 30 septembre 2004StatutMembreDernière intervention29 octobre 2004 14 oct. 2004 à 09:47
Merci beaucoup pour votre aide..
Mais j'ai décidé d'aborder le probleme d'une autre façon..
J'utilise la méthode bourrine qui consiste à carrement rajouter un champ aéroport dans les deux tables dans lesquelles j'effectuais mes requetes..
Sinon je suis toujours interressé de savoir pourquoi cette fonction FIlter ne fonctionne pas...pur curiosité informatique..
Vous avez tous proposé des solutions qui, je le suis sur, sont valables mais aucun de vous ne me dit pourquoi ma fonction Filter ne marche pas et comment faire marcher cette fichue fonction (c'était le véritable but de cette question sur ce forum)..
En tout cas merci pour votre aide et votre temps..
Lucien
par contre, et c'est peut etre la solution de ton problème si tu utilises 0 (vbBinaryCompare) en dernier param de filter "A" <> "a" alors que si tu utilises vbTextCompare "a" = "A"