cs_observatoire
Messages postés75Date d'inscriptionvendredi 10 mars 2006StatutMembreDernière intervention23 août 2006
-
20 avril 2006 à 12:00
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 2019
-
24 avril 2006 à 17:03
Bonjour,
Je réalise une interface utilisateur sur VBA Access, je souhaite reconnaître dans une textebox après avoir lu le texte, un caractère de type ';' qui peut apparaître plusieurs fois entre différents chiffres, et le transformer dans le code par 'AND' (ou encore '14*' = '1400 AND 1401 AND 1402...'). Je veux surtout savoir comment lire une chaîne de caractère et rechercher des caractères prédéfinis.
Merci
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 21 avril 2006 à 10:25
pour l'autre question le plus simple a mon avie c'est de tester si * est présant "instr(1,vaiable,"*")" retourne la position du carac puis avec left(1,variable) tu recup la 1ér lettre de ton string puis "val(left(1,varable))" tu recup la valeur.
Voila
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 20 avril 2006 à 12:25
Salut,
Cette fonction te retourne une chaine de carac en replacent un carac ou chaine de carac par un(e) autre.
Chaine = Replace(Chaine,FindString,ReplaceString)
donc ici ta variable à la place de chaine, ";" a la place de findstring, "AND" a la place de replacestring
Tu devrais pouvoir t'en sortir avec ça.
Bonne journée
cs_observatoire
Messages postés75Date d'inscriptionvendredi 10 mars 2006StatutMembreDernière intervention23 août 2006 21 avril 2006 à 10:19
Apparement votre solution marche plutôt bien, mais comment puis-je faire dans le cas où:
j'ai soit "20" dans la zone de texte et que je veux "VARIABLE=20" dans mon code
ou "20-25" dans la zone de texte et que je veux "VARIABLE>=20 AND VARIABLE <=25" dans mon code.
J'imagine qu'il faut que j'identifie les entiers 20 et 25...
Autre question, peut-être du même ordre: je veux que 2* soit reconnu dans mon code comme VARIABLE=(20 ou 21 ou 22 ou 23 ou 24 ou 25...)
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 21 avril 2006 à 10:22
Si j'ai bien compris tu veut la valeur contenu dans ton string.
La fonction pour ceup cette valeur c'est "val(variable)" ex: var("12") retourneras la valeur 12.
Tu peut recup le code ascii d'une lettre avec asc(variable) (cette fonction est utile pour comvertire B en 2 : asc("B") - asc("A") + 1
Voila avec ça ca dois aller
salut.
cs_observatoire
Messages postés75Date d'inscriptionvendredi 10 mars 2006StatutMembreDernière intervention23 août 2006 21 avril 2006 à 12:17
C'est pas mal, mais le problème c'est que je peux avoir plusieurs caractères à la suite: "1;21-5;6;7*;8-95" donc c'est pas toujours possible d'utiliser dans mes conditions uniquement le premier caractère ou le dernier. Puis-je lire un nombre à gauche de "-" ou de "*" par exemple?
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 21 avril 2006 à 13:31
Avec la fonction split tu peut utiliser egalement ubound(split(truc)) qui te renvoie le nombre d'élément de ton string (Attention le tableau commance à 0 et pas à 1)
LBound te permet de recup la 1ér "case" (num du 1ér élément soit 0 avec split) de ton tableau
Polack77
Messages postés1098Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention22 octobre 20191 24 avril 2006 à 08:55
Pense à valider la(les) réponce(s) qui t'on permis de résoudre ton probléme (pourcois pas même le dérnier message que tu à poster avec le code qui vas bien ).
cs_observatoire
Messages postés75Date d'inscriptionvendredi 10 mars 2006StatutMembreDernière intervention23 août 2006 24 avril 2006 à 17:01
Merci. ça marche jusque là : je n'ai pas encore testé toutes les possibilités pour 6* ou *5. J'ai juste une petite modif à faire: ce n'est pas "val(left(1,variable))" mais "val(left(variable,1))".