OVH Cloud OVH Cloud

Code

4 réponses
Avatar
Antoine
Bonjour,

Je suis =E0 la recherche d'un code qui me permettrait, =E0=20
partir d'un formulaire, d'en ouvrir un autre. Cependant,=20
les informations =E0 chercher sont limit=E9es.=20
Dans le formulaire =E0 ouvrir, j'ai 4 champs. J'aimerais que=20
le formulaire s'ouvre avec les donn=E9es qui sont =E9gales =E0=20
une zone de texte de mon premier formulaire, et ce pour=20
n'importe quel des 4 champs. De plus, je ne voudrais pas=20
que ce soit une valeur =E9gale, mais contient (*mot*).

Exemple: Dans le premier formulaire : Mot : 'Ant'
Si un enregistrement contient un mot qui contient 'Ant',=20
je veux qu'il l'ouvre, et ce pour n'importe quel des 4=20
champs.

J'ai essay=E9 avec les macros, mais =E7a ne fonctionne pas en=20
raison du manque d'espace. En fait, j'ai le m=EAme probl=E8me=20
que "Alexandre", il n'y a pas si longtemps. Seulement, je=20
ne suis pas assez bon en VBA pour traiter la r=E9ponse qu'il=20
a eu.

Merci,
Antoine

4 réponses

Avatar
Greg
'lut Antoine,

Avec l'assistant d'access, presque pas de problème:
- Crée un bouton d'action dans ton formulaire et laisse-toi guider par
l'assistant (Ouvrir un formulaire,..)
- Quand il te demande les relations entre les 2 formulaires, choisis les 2
champs que tu veux relationner entre eux.
-> À ce niveau là, tu auras un bouton qui te permettra d'ouvrir un 2º
formulaire avec un champ de la même valeur que ton 1º formulaire.

Pour changer le "égal" à "contenant", accède au code créé pour le bouton et
change:
stLinkCriteria = "[Champ]='" & Me![Champ] & "'" (+ ou -)
pour = ce dont tu as besoin (une fonction Like par exemple)

--
Bonne journée, soirée,...
------
Greg

"Antoine" escribió en el mensaje
news:2c6801c470af$aef0a250$
Bonjour,

Je suis à la recherche d'un code qui me permettrait, à
partir d'un formulaire, d'en ouvrir un autre. Cependant,
les informations à chercher sont limitées.
Dans le formulaire à ouvrir, j'ai 4 champs. J'aimerais que
le formulaire s'ouvre avec les données qui sont égales à
une zone de texte de mon premier formulaire, et ce pour
n'importe quel des 4 champs. De plus, je ne voudrais pas
que ce soit une valeur égale, mais contient (*mot*).

Exemple: Dans le premier formulaire : Mot : 'Ant'
Si un enregistrement contient un mot qui contient 'Ant',
je veux qu'il l'ouvre, et ce pour n'importe quel des 4
champs.

J'ai essayé avec les macros, mais ça ne fonctionne pas en
raison du manque d'espace. En fait, j'ai le même problème
que "Alexandre", il n'y a pas si longtemps. Seulement, je
ne suis pas assez bon en VBA pour traiter la réponse qu'il
a eu.

Merci,
Antoine
Avatar
Jean Pierre
Le deuxième formulaire doit être construit sur une requête.Le contenu de
votre premier formulaire est forcément dans une table.
Faites donc une requête sur cette table avec le nom des 4 champs seulement
(et le N° de la clef).
Dans la requête, sur la dernière ligne (critère) marquez que vous voulez
seulement les champs qui contiennent tel ou tel mot. Comme vous ne savez pas
à l'avance quel mot ou morceau de mot vous voulez, marquez comme critère :
[Quel mot ou morceau de mot cherchez-vous ?]
Attention : n'oubliez pas les crochets.
Lorsque vous cliquerez sur le bouton du formulaire 1, il ouvrira le
formulaire 2 . Mais le formulaire 2 ne pourra s'ouvrir que si la requête a
remplacé votre question entre crochets par une réponse.Il vous posera donc 4
fois la même question puisque chaque champ a besoin de savoir.
Vous devez répondre à la question sous la forme :
Comme *ant*
Attention à la majuscule à "Comme"
Il recherchera pour chaqu'un des 4 champs les mots contenant "ant".

Bien entendu le formulaire 2 doit avoir comme source la requête que vous
venez de créer.




"Antoine" a écrit dans le message de
news:2c6801c470af$aef0a250$
Bonjour,

Je suis à la recherche d'un code qui me permettrait, à
partir d'un formulaire, d'en ouvrir un autre. Cependant,
les informations à chercher sont limitées.
Dans le formulaire à ouvrir, j'ai 4 champs. J'aimerais que
le formulaire s'ouvre avec les données qui sont égales à
une zone de texte de mon premier formulaire, et ce pour
n'importe quel des 4 champs. De plus, je ne voudrais pas
que ce soit une valeur égale, mais contient (*mot*).

Exemple: Dans le premier formulaire : Mot : 'Ant'
Si un enregistrement contient un mot qui contient 'Ant',
je veux qu'il l'ouvre, et ce pour n'importe quel des 4
champs.

J'ai essayé avec les macros, mais ça ne fonctionne pas en
raison du manque d'espace. En fait, j'ai le même problème
que "Alexandre", il n'y a pas si longtemps. Seulement, je
ne suis pas assez bon en VBA pour traiter la réponse qu'il
a eu.

Merci,
Antoine
Avatar
Greg
Dsl, j'avais pas lu: "et ce pour n'importe lequel des 4 champs".
Ma solution n'est donc pas correcte.

--
Bonne journée, soirée,...
------
Greg

"Greg" escribió en el mensaje
news:%
'lut Antoine,

Avec l'assistant d'access, presque pas de problème:
- Crée un bouton d'action dans ton formulaire et laisse-toi guider par
l'assistant (Ouvrir un formulaire,..)
- Quand il te demande les relations entre les 2 formulaires, choisis les 2
champs que tu veux relationner entre eux.
-> À ce niveau là, tu auras un bouton qui te permettra d'ouvrir un 2º
formulaire avec un champ de la même valeur que ton 1º formulaire.

Pour changer le "égal" à "contenant", accède au code créé pour le bouton
et

change:
stLinkCriteria = "[Champ]='" & Me![Champ] & "'" (+ ou -)
pour = ce dont tu as besoin (une fonction Like par exemple)

--
Bonne journée, soirée,...
------
Greg

"Antoine" escribió en el mensaje
news:2c6801c470af$aef0a250$
Bonjour,

Je suis à la recherche d'un code qui me permettrait, à
partir d'un formulaire, d'en ouvrir un autre. Cependant,
les informations à chercher sont limitées.
Dans le formulaire à ouvrir, j'ai 4 champs. J'aimerais que
le formulaire s'ouvre avec les données qui sont égales à
une zone de texte de mon premier formulaire, et ce pour
n'importe quel des 4 champs. De plus, je ne voudrais pas
que ce soit une valeur égale, mais contient (*mot*).

Exemple: Dans le premier formulaire : Mot : 'Ant'
Si un enregistrement contient un mot qui contient 'Ant',
je veux qu'il l'ouvre, et ce pour n'importe quel des 4
champs.

J'ai essayé avec les macros, mais ça ne fonctionne pas en
raison du manque d'espace. En fait, j'ai le même problème
que "Alexandre", il n'y a pas si longtemps. Seulement, je
ne suis pas assez bon en VBA pour traiter la réponse qu'il
a eu.

Merci,
Antoine




Avatar
Antoine
Bonjour et merci.
Votre solution semble bonne, mais j'aimerais quelquechose
de plus automatique. La zone de texte du premier
formulaire n'est pas une zone de texte que l'on tape. Elle
est automatique avec les enregistrements. J'aimerais que
l'utilisateur clique sur un bouton et que ça fasse ce que
je veux. Avec les macros, je n'ai le droit qu'à chercher
dans deux champs.
En VBA, quelqu'un à répondu à "Alexandre" de faire le
code: CurrentDb.Execute " Ton SQL avec ta condition where"

Mais je ne sais pas trop quoi faire avec cela.

Merci,
Antoine