Bonjour,
Je suis sur Windows XP Pro, Office XP Pro, toutes les mises à jours sont
faites.
Dans un formulaire, j'ai un champs indépendant Recherche.
Sur événement Après mise à jour, je veux chercher n'importe où dans mon
formulaire le texte que je viens de taper dans le champs Recherche.
Private Sub Recherche_AfterUpdate()
DoCmd.FindRecord Me.Recherche, acAnywhere, False, acSearchAll, False,
acAll, True
End sub
Mais j'ai l'erreur :
Erreur d'ecécution '2162':
Une macro définie sur une des propriétés du champ en cours a échoué à
cause
d'une erreur dans l'argument de l'action TrouverEnregistrement.
Fin / Débogage
Le fait de débogguer m'amène sur la ligne FindRecord.
Je vérifie mais la syntaxe indiquée dans l'aide est bien comme celle
notée.
Je n'arrive pas à comprendre pourquoi ça ne fonctionne pas.
Pouvez-vous m'aider, s'il vous plait.
Merci d'avance.
--
Cordialement,
Stéphane Lavergne
Bonjour,
Je suis sur Windows XP Pro, Office XP Pro, toutes les mises à jours sont
faites.
Dans un formulaire, j'ai un champs indépendant Recherche.
Sur événement Après mise à jour, je veux chercher n'importe où dans mon
formulaire le texte que je viens de taper dans le champs Recherche.
Private Sub Recherche_AfterUpdate()
DoCmd.FindRecord Me.Recherche, acAnywhere, False, acSearchAll, False,
acAll, True
End sub
Mais j'ai l'erreur :
Erreur d'ecécution '2162':
Une macro définie sur une des propriétés du champ en cours a échoué à
cause
d'une erreur dans l'argument de l'action TrouverEnregistrement.
Fin / Débogage
Le fait de débogguer m'amène sur la ligne FindRecord.
Je vérifie mais la syntaxe indiquée dans l'aide est bien comme celle
notée.
Je n'arrive pas à comprendre pourquoi ça ne fonctionne pas.
Pouvez-vous m'aider, s'il vous plait.
Merci d'avance.
--
Cordialement,
Stéphane Lavergne
Bonjour,
Je suis sur Windows XP Pro, Office XP Pro, toutes les mises à jours sont
faites.
Dans un formulaire, j'ai un champs indépendant Recherche.
Sur événement Après mise à jour, je veux chercher n'importe où dans mon
formulaire le texte que je viens de taper dans le champs Recherche.
Private Sub Recherche_AfterUpdate()
DoCmd.FindRecord Me.Recherche, acAnywhere, False, acSearchAll, False,
acAll, True
End sub
Mais j'ai l'erreur :
Erreur d'ecécution '2162':
Une macro définie sur une des propriétés du champ en cours a échoué à
cause
d'une erreur dans l'argument de l'action TrouverEnregistrement.
Fin / Débogage
Le fait de débogguer m'amène sur la ligne FindRecord.
Je vérifie mais la syntaxe indiquée dans l'aide est bien comme celle
notée.
Je n'arrive pas à comprendre pourquoi ça ne fonctionne pas.
Pouvez-vous m'aider, s'il vous plait.
Merci d'avance.
--
Cordialement,
Stéphane Lavergne
Re.
Anor wrote:
| Salut,
| habituellement, j'utilise
| docmd.FindRecord "test",acAnywhere,,acSearchAll,,acAll
|
| Essaye donc un truc du genre :
|
| docmd.FindRecord Me.Recherche.Text,acAnywhere,,acSearchAll,,acAll
|
| pour voir ....(note bien le .Text qui retourne la valaur contenue
| dans ta eone de liste avant mise à jour)
|
Après réflexion, j'ai l'impression qu'il faut faire précéder
systématiquement
la fonction par un docmd.gotocontrol
Donc, soit tu fais une boucle sur les contrôles qui risquent de contrnir
la chaîne recherchée,
soit, astuce, tu crées un champ calculé dans ta requête source qui
concatène tous les champs
dans lesquels tu veux réaliser ta recherche ChpRecherche :
[champA]&[ChampB]
puis tu fais un gotocontrol ce nouveau champ et tu lances le findrecord
dans la foulée.
reste à savoir si le gotocontrol va fonctionner dans le cas où ce nouveau
controle serait
déclaré invisible .....
pas testé mais si ça peut donner une nouvelle piste de recherche....
--
à+
Arnaud
Re.
Anor wrote:
| Salut,
| habituellement, j'utilise
| docmd.FindRecord "test",acAnywhere,,acSearchAll,,acAll
|
| Essaye donc un truc du genre :
|
| docmd.FindRecord Me.Recherche.Text,acAnywhere,,acSearchAll,,acAll
|
| pour voir ....(note bien le .Text qui retourne la valaur contenue
| dans ta eone de liste avant mise à jour)
|
Après réflexion, j'ai l'impression qu'il faut faire précéder
systématiquement
la fonction par un docmd.gotocontrol
Donc, soit tu fais une boucle sur les contrôles qui risquent de contrnir
la chaîne recherchée,
soit, astuce, tu crées un champ calculé dans ta requête source qui
concatène tous les champs
dans lesquels tu veux réaliser ta recherche ChpRecherche :
[champA]&[ChampB]
puis tu fais un gotocontrol ce nouveau champ et tu lances le findrecord
dans la foulée.
reste à savoir si le gotocontrol va fonctionner dans le cas où ce nouveau
controle serait
déclaré invisible .....
pas testé mais si ça peut donner une nouvelle piste de recherche....
--
à+
Arnaud
Re.
Anor wrote:
| Salut,
| habituellement, j'utilise
| docmd.FindRecord "test",acAnywhere,,acSearchAll,,acAll
|
| Essaye donc un truc du genre :
|
| docmd.FindRecord Me.Recherche.Text,acAnywhere,,acSearchAll,,acAll
|
| pour voir ....(note bien le .Text qui retourne la valaur contenue
| dans ta eone de liste avant mise à jour)
|
Après réflexion, j'ai l'impression qu'il faut faire précéder
systématiquement
la fonction par un docmd.gotocontrol
Donc, soit tu fais une boucle sur les contrôles qui risquent de contrnir
la chaîne recherchée,
soit, astuce, tu crées un champ calculé dans ta requête source qui
concatène tous les champs
dans lesquels tu veux réaliser ta recherche ChpRecherche :
[champA]&[ChampB]
puis tu fais un gotocontrol ce nouveau champ et tu lances le findrecord
dans la foulée.
reste à savoir si le gotocontrol va fonctionner dans le cas où ce nouveau
controle serait
déclaré invisible .....
pas testé mais si ça peut donner une nouvelle piste de recherche....
--
à+
Arnaud
Re Arnaud.
En principe il faut mettre le focus sur un contrôle texte du formulaire.
Je suis toujours très réservé sur le bon résultat obtenu avec findRecord
et
acAll, qui dans le fond de ma mémoire est gravé "bug" depuis la nuit des
temps à cause de la diversité des types de contrôles du formulaire.
J'utilise uniquement le findfirst. celà dit nul n'est prophète
.............
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message
de
news:Re.
Anor wrote:
| Salut,
| habituellement, j'utilise
| docmd.FindRecord "test",acAnywhere,,acSearchAll,,acAll
|
| Essaye donc un truc du genre :
|
| docmd.FindRecord Me.Recherche.Text,acAnywhere,,acSearchAll,,acAll
|
| pour voir ....(note bien le .Text qui retourne la valaur contenue
| dans ta eone de liste avant mise à jour)
|
Après réflexion, j'ai l'impression qu'il faut faire précéder
systématiquementla fonction par un docmd.gotocontrol
Donc, soit tu fais une boucle sur les contrôles qui risquent de contrnir
la chaîne recherchée,soit, astuce, tu crées un champ calculé dans ta requête source qui
concatène tous les champsdans lesquels tu veux réaliser ta recherche ChpRecherche :
[champA]&[ChampB]puis tu fais un gotocontrol ce nouveau champ et tu lances le findrecord
dans la foulée.
reste à savoir si le gotocontrol va fonctionner dans le cas où ce
nouveau
controle seraitdéclaré invisible .....
pas testé mais si ça peut donner une nouvelle piste de recherche....
--
à+
Arnaud
Re Arnaud.
En principe il faut mettre le focus sur un contrôle texte du formulaire.
Je suis toujours très réservé sur le bon résultat obtenu avec findRecord
et
acAll, qui dans le fond de ma mémoire est gravé "bug" depuis la nuit des
temps à cause de la diversité des types de contrôles du formulaire.
J'utilise uniquement le findfirst. celà dit nul n'est prophète
.............
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message
de
news:upoHf1QKEHA.2452@TK2MSFTNGP09.phx.gbl...
Re.
Anor wrote:
| Salut,
| habituellement, j'utilise
| docmd.FindRecord "test",acAnywhere,,acSearchAll,,acAll
|
| Essaye donc un truc du genre :
|
| docmd.FindRecord Me.Recherche.Text,acAnywhere,,acSearchAll,,acAll
|
| pour voir ....(note bien le .Text qui retourne la valaur contenue
| dans ta eone de liste avant mise à jour)
|
Après réflexion, j'ai l'impression qu'il faut faire précéder
systématiquement
la fonction par un docmd.gotocontrol
Donc, soit tu fais une boucle sur les contrôles qui risquent de contrnir
la chaîne recherchée,
soit, astuce, tu crées un champ calculé dans ta requête source qui
concatène tous les champs
dans lesquels tu veux réaliser ta recherche ChpRecherche :
[champA]&[ChampB]
puis tu fais un gotocontrol ce nouveau champ et tu lances le findrecord
dans la foulée.
reste à savoir si le gotocontrol va fonctionner dans le cas où ce
nouveau
controle serait
déclaré invisible .....
pas testé mais si ça peut donner une nouvelle piste de recherche....
--
à+
Arnaud
Re Arnaud.
En principe il faut mettre le focus sur un contrôle texte du formulaire.
Je suis toujours très réservé sur le bon résultat obtenu avec findRecord
et
acAll, qui dans le fond de ma mémoire est gravé "bug" depuis la nuit des
temps à cause de la diversité des types de contrôles du formulaire.
J'utilise uniquement le findfirst. celà dit nul n'est prophète
.............
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Anor" <http://memoaccess.free.fr/anor/email.htm> a écrit dans le message
de
news:Re.
Anor wrote:
| Salut,
| habituellement, j'utilise
| docmd.FindRecord "test",acAnywhere,,acSearchAll,,acAll
|
| Essaye donc un truc du genre :
|
| docmd.FindRecord Me.Recherche.Text,acAnywhere,,acSearchAll,,acAll
|
| pour voir ....(note bien le .Text qui retourne la valaur contenue
| dans ta eone de liste avant mise à jour)
|
Après réflexion, j'ai l'impression qu'il faut faire précéder
systématiquementla fonction par un docmd.gotocontrol
Donc, soit tu fais une boucle sur les contrôles qui risquent de contrnir
la chaîne recherchée,soit, astuce, tu crées un champ calculé dans ta requête source qui
concatène tous les champsdans lesquels tu veux réaliser ta recherche ChpRecherche :
[champA]&[ChampB]puis tu fais un gotocontrol ce nouveau champ et tu lances le findrecord
dans la foulée.
reste à savoir si le gotocontrol va fonctionner dans le cas où ce
nouveau
controle seraitdéclaré invisible .....
pas testé mais si ça peut donner une nouvelle piste de recherche....
--
à+
Arnaud
Bonjour,
OK, je comprends mieux pourquoi ça ne fonctionnait pas.
Je vais essayer de concaténer, en fait ma recherche doit porter sur 4
champs
textes de mon formulaire.
A moins que, Raymond, avec FindFirst, est-il possible de chercher 1 valeur
n'importe où dans le texte de 4 contrôles?
Merci déjà pour ces éclairssiements, j'ai de quoi chercher 1 peu mieux :)
Stéphane
Bonjour,
OK, je comprends mieux pourquoi ça ne fonctionnait pas.
Je vais essayer de concaténer, en fait ma recherche doit porter sur 4
champs
textes de mon formulaire.
A moins que, Raymond, avec FindFirst, est-il possible de chercher 1 valeur
n'importe où dans le texte de 4 contrôles?
Merci déjà pour ces éclairssiements, j'ai de quoi chercher 1 peu mieux :)
Stéphane
Bonjour,
OK, je comprends mieux pourquoi ça ne fonctionnait pas.
Je vais essayer de concaténer, en fait ma recherche doit porter sur 4
champs
textes de mon formulaire.
A moins que, Raymond, avec FindFirst, est-il possible de chercher 1 valeur
n'importe où dans le texte de 4 contrôles?
Merci déjà pour ces éclairssiements, j'ai de quoi chercher 1 peu mieux :)
Stéphane
Il faudrait que tu déclares tes 4 champs dans un même index ( les mettre
contigus) et utiliser le seek ( si c'est possible car il ne fonctionne pas
sur tables attachées).
sinon le findfirst peut marcher avec un like et des Or dans la clause
where
mais je ne garantis pas la performance en vitesse.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst ("[blablabla] like *" & Me.moncontrole & "*" ) Or
("[blablabla] like *" & Me.moncontrole1 & "*" ) Or
.........
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Stéphane Lavergne" a écrit dans le message de
news:%Bonjour,
OK, je comprends mieux pourquoi ça ne fonctionnait pas.
Je vais essayer de concaténer, en fait ma recherche doit porter sur 4
champstextes de mon formulaire.
A moins que, Raymond, avec FindFirst, est-il possible de chercher 1
valeur
n'importe où dans le texte de 4 contrôles?
Merci déjà pour ces éclairssiements, j'ai de quoi chercher 1 peu mieux
:)
Stéphane
Il faudrait que tu déclares tes 4 champs dans un même index ( les mettre
contigus) et utiliser le seek ( si c'est possible car il ne fonctionne pas
sur tables attachées).
sinon le findfirst peut marcher avec un like et des Or dans la clause
where
mais je ne garantis pas la performance en vitesse.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst ("[blablabla] like *" & Me.moncontrole & "*" ) Or
("[blablabla] like *" & Me.moncontrole1 & "*" ) Or
.........
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Stéphane Lavergne" <no@spam.fr> a écrit dans le message de
news:%239eT7BRKEHA.1120@TK2MSFTNGP11.phx.gbl...
Bonjour,
OK, je comprends mieux pourquoi ça ne fonctionnait pas.
Je vais essayer de concaténer, en fait ma recherche doit porter sur 4
champs
textes de mon formulaire.
A moins que, Raymond, avec FindFirst, est-il possible de chercher 1
valeur
n'importe où dans le texte de 4 contrôles?
Merci déjà pour ces éclairssiements, j'ai de quoi chercher 1 peu mieux
:)
Stéphane
Il faudrait que tu déclares tes 4 champs dans un même index ( les mettre
contigus) et utiliser le seek ( si c'est possible car il ne fonctionne pas
sur tables attachées).
sinon le findfirst peut marcher avec un like et des Or dans la clause
where
mais je ne garantis pas la performance en vitesse.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst ("[blablabla] like *" & Me.moncontrole & "*" ) Or
("[blablabla] like *" & Me.moncontrole1 & "*" ) Or
.........
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Stéphane Lavergne" a écrit dans le message de
news:%Bonjour,
OK, je comprends mieux pourquoi ça ne fonctionnait pas.
Je vais essayer de concaténer, en fait ma recherche doit porter sur 4
champstextes de mon formulaire.
A moins que, Raymond, avec FindFirst, est-il possible de chercher 1
valeur
n'importe où dans le texte de 4 contrôles?
Merci déjà pour ces éclairssiements, j'ai de quoi chercher 1 peu mieux
:)
Stéphane
Hihi, merci Raymond, j'étais dessus... mais je butais bêtement sur le
jocker... je mettais 1 %
Mais... rs est à décalrer en Object ? pas en Recordset ?
Stéphane
Hihi, merci Raymond, j'étais dessus... mais je butais bêtement sur le
jocker... je mettais 1 %
Mais... rs est à décalrer en Object ? pas en Recordset ?
Stéphane
Hihi, merci Raymond, j'étais dessus... mais je butais bêtement sur le
jocker... je mettais 1 %
Mais... rs est à décalrer en Object ? pas en Recordset ?
Stéphane
Il faudrait que tu déclares tes 4 champs dans un même index ( les mettre
contigus) et utiliser le seek ( si c'est possible car il ne fonctionne pas
sur tables attachées).
sinon le findfirst peut marcher avec un like et des Or dans la clause
where
mais je ne garantis pas la performance en vitesse.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst ("[blablabla] like *" & Me.moncontrole & "*" ) Or
("[blablabla] like *" & Me.moncontrole1 & "*" ) Or
.........
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Stéphane Lavergne" a écrit dans le message de
news:%Bonjour,
OK, je comprends mieux pourquoi ça ne fonctionnait pas.
Je vais essayer de concaténer, en fait ma recherche doit porter sur 4
champstextes de mon formulaire.
A moins que, Raymond, avec FindFirst, est-il possible de chercher 1
valeur
n'importe où dans le texte de 4 contrôles?
Merci déjà pour ces éclairssiements, j'ai de quoi chercher 1 peu mieux
:)
Stéphane
Il faudrait que tu déclares tes 4 champs dans un même index ( les mettre
contigus) et utiliser le seek ( si c'est possible car il ne fonctionne pas
sur tables attachées).
sinon le findfirst peut marcher avec un like et des Or dans la clause
where
mais je ne garantis pas la performance en vitesse.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst ("[blablabla] like *" & Me.moncontrole & "*" ) Or
("[blablabla] like *" & Me.moncontrole1 & "*" ) Or
.........
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Stéphane Lavergne" <no@spam.fr> a écrit dans le message de
news:%239eT7BRKEHA.1120@TK2MSFTNGP11.phx.gbl...
Bonjour,
OK, je comprends mieux pourquoi ça ne fonctionnait pas.
Je vais essayer de concaténer, en fait ma recherche doit porter sur 4
champs
textes de mon formulaire.
A moins que, Raymond, avec FindFirst, est-il possible de chercher 1
valeur
n'importe où dans le texte de 4 contrôles?
Merci déjà pour ces éclairssiements, j'ai de quoi chercher 1 peu mieux
:)
Stéphane
Il faudrait que tu déclares tes 4 champs dans un même index ( les mettre
contigus) et utiliser le seek ( si c'est possible car il ne fonctionne pas
sur tables attachées).
sinon le findfirst peut marcher avec un like et des Or dans la clause
where
mais je ne garantis pas la performance en vitesse.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst ("[blablabla] like *" & Me.moncontrole & "*" ) Or
("[blablabla] like *" & Me.moncontrole1 & "*" ) Or
.........
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Stéphane Lavergne" a écrit dans le message de
news:%Bonjour,
OK, je comprends mieux pourquoi ça ne fonctionnait pas.
Je vais essayer de concaténer, en fait ma recherche doit porter sur 4
champstextes de mon formulaire.
A moins que, Raymond, avec FindFirst, est-il possible de chercher 1
valeur
n'importe où dans le texte de 4 contrôles?
Merci déjà pour ces éclairssiements, j'ai de quoi chercher 1 peu mieux
:)
Stéphane
Ca marche !
Mais, j'ai 1 autre problème.
Donc sur ce formulaire, j'ai comme déjà cité ce contrôle indépendant
Recherche, mais aussi 1 bouton Recherche_Suivant.
Mais le problème se situe maintenant sur le contrôle Recherche_suivant qui
ne recherche pas le suivant, mais le 1er déjà trouvé et affiché.
Même si je reclique sur le bouton plusieurs fois de suite.
Ca marche !
Mais, j'ai 1 autre problème.
Donc sur ce formulaire, j'ai comme déjà cité ce contrôle indépendant
Recherche, mais aussi 1 bouton Recherche_Suivant.
Mais le problème se situe maintenant sur le contrôle Recherche_suivant qui
ne recherche pas le suivant, mais le 1er déjà trouvé et affiché.
Même si je reclique sur le bouton plusieurs fois de suite.
Ca marche !
Mais, j'ai 1 autre problème.
Donc sur ce formulaire, j'ai comme déjà cité ce contrôle indépendant
Recherche, mais aussi 1 bouton Recherche_Suivant.
Mais le problème se situe maintenant sur le contrôle Recherche_suivant qui
ne recherche pas le suivant, mais le 1er déjà trouvé et affiché.
Même si je reclique sur le bouton plusieurs fois de suite.