{Access} repérer un mot sélectionné dans un champ
Fermé
ecrol
Messages postés
5
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
19 février 2010
-
11 juil. 2009 à 21:58
lecrol - 14 juil. 2009 à 06:07
lecrol - 14 juil. 2009 à 06:07
A voir également:
- {Access} repérer un mot sélectionné dans un champ
- Mettre un mot de passe sur un dossier - Guide
- Comment réinitialiser un pc sans mot de passe - Guide
- Voir mot de passe wifi android - Guide
- Word remplacer un mot par un autre - Guide
- Mot de passe administrateur - Guide
6 réponses
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
12 juil. 2009 à 14:43
12 juil. 2009 à 14:43
Pour rechercher un mot dans un champ texte, on peut utiliser les "alias".
Le critère de la recherche sera alors "*"&[TexteRecherché]&"*".
Tu veux écrire une procédure qui va vérifier si ce texte ou mot existe dans un champ quelconque.
Le problème est que s'il existe en plusieurs exemplaires, tu dois réfléchir au mode d'affichage des données...
Pour revenir à l'enregistrement précédent, tu devrais créer une variable statique et lui attribuer la valeur de la clé primaire de l'enregistrement de départ. Il te suffirait alors de trier les enregistrements à l'aide d'un bouton de commande.
Le critère de la recherche sera alors "*"&[TexteRecherché]&"*".
Tu veux écrire une procédure qui va vérifier si ce texte ou mot existe dans un champ quelconque.
Le problème est que s'il existe en plusieurs exemplaires, tu dois réfléchir au mode d'affichage des données...
Pour revenir à l'enregistrement précédent, tu devrais créer une variable statique et lui attribuer la valeur de la clé primaire de l'enregistrement de départ. Il te suffirait alors de trier les enregistrements à l'aide d'un bouton de commande.
Merci de ta réponse super sympa. Mais ça n'est pas tout à fait ça.
Je voudrais pouvoir fabriquer un "lien" automatique, à partir d'un mot quelconque du champ mémo que je lis. Une fois "repéré" ce mot (mais comment?), un bouton de commande m'ouvrirait le record (s'il existe !) de la même table et dont la clé est, précisément, le mot sélectionné
Exemple: Dans le champ texte de la fiche "Dupont", je trouve un texte comme " kjkj goispps kk jnbnzneee gsfg durand gdrriizososo " En mettant en surbrillance le mot Durand , le bouton commande m'ouvre la fiche "Durand" (si elle existe !)
Je voudrais pouvoir ainsi "pointer" un mot quelconque du champ, un peu comme une espèce de lien hypertexte. Ce mot ainsi sélectionné (comment ?) deviendrait le paramètre d'un bouton de commande qui irait, lui avec du code, me chercher la fiche dont la clé = le mot sélectionné dans le champ mémo de départ
Une fois ouverte (et lue) la fiche "appelée", je voudrais pouvoir revenir automatiquement à la fiche "appelante" pour ne pas avoir à m'en rapeller le n° ni à faire deux fois une manip de type recherche (les jumelles, par exemple)
J'ai essayé avec une solution de type souris appuyée, déplacée ou relachée, mais en fait je déclenche l'évènement à chaque passage sur le champ mémo, à chaque saisie ordinaire, ne serait-ce quy epour corriger uen faute !
C'est pourquoi j'avais imaginé une mise en gras, par exemple, du mot sélectionné puis un balayage caractère par caractère du contenu du champ. Mais je ne sais pas bien comment coder tout ça.
Merci d'avance
Amicalement,
Roland
Je voudrais pouvoir fabriquer un "lien" automatique, à partir d'un mot quelconque du champ mémo que je lis. Une fois "repéré" ce mot (mais comment?), un bouton de commande m'ouvrirait le record (s'il existe !) de la même table et dont la clé est, précisément, le mot sélectionné
Exemple: Dans le champ texte de la fiche "Dupont", je trouve un texte comme " kjkj goispps kk jnbnzneee gsfg durand gdrriizososo " En mettant en surbrillance le mot Durand , le bouton commande m'ouvre la fiche "Durand" (si elle existe !)
Je voudrais pouvoir ainsi "pointer" un mot quelconque du champ, un peu comme une espèce de lien hypertexte. Ce mot ainsi sélectionné (comment ?) deviendrait le paramètre d'un bouton de commande qui irait, lui avec du code, me chercher la fiche dont la clé = le mot sélectionné dans le champ mémo de départ
Une fois ouverte (et lue) la fiche "appelée", je voudrais pouvoir revenir automatiquement à la fiche "appelante" pour ne pas avoir à m'en rapeller le n° ni à faire deux fois une manip de type recherche (les jumelles, par exemple)
J'ai essayé avec une solution de type souris appuyée, déplacée ou relachée, mais en fait je déclenche l'évènement à chaque passage sur le champ mémo, à chaque saisie ordinaire, ne serait-ce quy epour corriger uen faute !
C'est pourquoi j'avais imaginé une mise en gras, par exemple, du mot sélectionné puis un balayage caractère par caractère du contenu du champ. Mais je ne sais pas bien comment coder tout ça.
Merci d'avance
Amicalement,
Roland
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
12 juil. 2009 à 19:17
12 juil. 2009 à 19:17
Il y a peut-être moyen de s'en sortir avec l'instruction SendKeys en copiant le texte sélectionné ds le presse papier puis en le collant dans le champ de recherche.
Je ne connais pas les commandes et je pense que les nouvelles versions d'Access ne reconnaissent plus SendKeys mais peut-être une autre commande l'a-t-elle remplacé.
Pour revenir à l'enregistrement précédent, je pense que le mieux est d'enregistrer la clé de l'enregistrement courant dans une variable statique et de la récupérer en fermant l'enregistrement appelé.
Je ne connais pas les commandes et je pense que les nouvelles versions d'Access ne reconnaissent plus SendKeys mais peut-être une autre commande l'a-t-elle remplacé.
Pour revenir à l'enregistrement précédent, je pense que le mieux est d'enregistrer la clé de l'enregistrement courant dans une variable statique et de la récupérer en fermant l'enregistrement appelé.
Tu es vraiment sympa. Mais non, Sendkeys ne répond à mon problème Le hic c'est toujours de savoir si et comment on peut "repérer", marquer, choisir un mot dans un texte pour en faire automatiquement un argument pour VBA Et cela d'une façon qui soit distincte, pour l'utilisateur, d'une saisie normale dans ce texte.
Exemple:
Dans un texte tel que: "il se maria avec madame Dupont et ils eurent 3 enfants", texte que je peux lire, modifier, compléter, etc. comment, quand je le veux, "marquer" le mot "Dupont" pour en faire un argument VBA ? Peut-être n'y a t il pas d'autre solution que le bon vieux copié collé ?
Merci
Roland
Exemple:
Dans un texte tel que: "il se maria avec madame Dupont et ils eurent 3 enfants", texte que je peux lire, modifier, compléter, etc. comment, quand je le veux, "marquer" le mot "Dupont" pour en faire un argument VBA ? Peut-être n'y a t il pas d'autre solution que le bon vieux copié collé ?
Merci
Roland
Bonjour,
En fait, j'en reviens à ma première idée (comme toujours !)
Pour "marquer" un mot quelconque dans mon champ texte, sans confusion possible avec une quelconque modif ou saisie ordinaire, j'imagine de le mettre en gras.
Ensuite le code attaché à mon bouton de commande doit rechercher, caractère par caractère, dans le champ texte ce mot en gras.
Mais c'est là que je ne sais comment écrire la boucle de balayage. Je ne sais pas comment arrêter le balayage (fin du champ texte ? dernier caractère ?) .
Si tu peux me "donner la main" pour écrire cette boucle de code, je t'en remercie d'avance
Amicalement,
Roland
En fait, j'en reviens à ma première idée (comme toujours !)
Pour "marquer" un mot quelconque dans mon champ texte, sans confusion possible avec une quelconque modif ou saisie ordinaire, j'imagine de le mettre en gras.
Ensuite le code attaché à mon bouton de commande doit rechercher, caractère par caractère, dans le champ texte ce mot en gras.
Mais c'est là que je ne sais comment écrire la boucle de balayage. Je ne sais pas comment arrêter le balayage (fin du champ texte ? dernier caractère ?) .
Si tu peux me "donner la main" pour écrire cette boucle de code, je t'en remercie d'avance
Amicalement,
Roland
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
13 juil. 2009 à 12:50
13 juil. 2009 à 12:50
J'y réfléchis, mais je ne peux pas me connecter avant ce soir...
zenon
Messages postés
726
Date d'inscription
jeudi 30 septembre 2004
Statut
Membre
Dernière intervention
13 février 2010
180
13 juil. 2009 à 23:05
13 juil. 2009 à 23:05
J'ai essayé sans succès de faire une boucle...
Je sais qu'on peut recherche une suite de caractères en imbriquant left et right:
J'ai essayé:
i= nombre de caractères à extraire
Do While i < Len(ChampAExplorer) - nombre de caractères à extraire
X = Left (right (ChampAExplorer , i) ,Nombre de caractères à extraire)
If X = ce qu'on cherche Then...
else
i=i+1
end If
Loop
mais ça ne marche pas...
Je sais qu'on peut recherche une suite de caractères en imbriquant left et right:
J'ai essayé:
i= nombre de caractères à extraire
Do While i < Len(ChampAExplorer) - nombre de caractères à extraire
X = Left (right (ChampAExplorer , i) ,Nombre de caractères à extraire)
If X = ce qu'on cherche Then...
else
i=i+1
end If
Loop
mais ça ne marche pas...
Salut Zenon,
C'est vraiment sympa de ne plus être seul à chercher ! Merci ! En fait, je crois que la boucle, on va y arriver, en tâtonnant un peu, comme d'habe !
Mais j'ai découvert que je vais avoir un second problème. A partir du nom d'appel, le mot choisi dans le texte, je ne sais pas bien comment écrire mon appel de lecture, sachant que le champ [Nom] est la clé de ma Table. base. Avec une macro je sais le faire, mais pas avec du code VBA.
Dernier détail : ajouter à mes formulaires actuels, un bouton qui me ramène sur la fiche de laquelle je suis parti, juste avant l'appel. Sur une fiche "Dupont", par exemple, je sélectionne dans le champ [texte] le mot "Durand" Ce mot, je vais voir si une fiche existe avec ce nom-là dans la Table; Si non, message "non trouvé". Si oui, j'ouvre la fiche "Durand" pour y lire ce que je cherche. Et un bouton commande me permet de revenir à la fiche "Dupont".
Suis-je assez clair ? J'espère que oui. Si tu veux, je t'envoie une petite table d'essai que j'ai fabriquée, juste pour ces bidouilles de mise au point
Amicalement,
Roland
C'est vraiment sympa de ne plus être seul à chercher ! Merci ! En fait, je crois que la boucle, on va y arriver, en tâtonnant un peu, comme d'habe !
Mais j'ai découvert que je vais avoir un second problème. A partir du nom d'appel, le mot choisi dans le texte, je ne sais pas bien comment écrire mon appel de lecture, sachant que le champ [Nom] est la clé de ma Table. base. Avec une macro je sais le faire, mais pas avec du code VBA.
Dernier détail : ajouter à mes formulaires actuels, un bouton qui me ramène sur la fiche de laquelle je suis parti, juste avant l'appel. Sur une fiche "Dupont", par exemple, je sélectionne dans le champ [texte] le mot "Durand" Ce mot, je vais voir si une fiche existe avec ce nom-là dans la Table; Si non, message "non trouvé". Si oui, j'ouvre la fiche "Durand" pour y lire ce que je cherche. Et un bouton commande me permet de revenir à la fiche "Dupont".
Suis-je assez clair ? J'espère que oui. Si tu veux, je t'envoie une petite table d'essai que j'ai fabriquée, juste pour ces bidouilles de mise au point
Amicalement,
Roland