|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||||
|
Nouveau Membre du Club
![]() Inscription : février 2007 Messages : 148 ![]() |
Bonsoir à tous,
Je m'arrache les cheveux à cause des erreurs 2108 "Vous devez enregistrer le champ avant d'exécuter l'action AtteindreContrôle, la méthode GoToControl ou la méthode SetFocus." et 2115 "La macro ou fonction attribuée à la propriété AvantMAJ ou ValideSi pour ce champ empêche Microsoft Office Access d'enregistrer les données dans le champ.". J'ai un formulaire de recherche de client pour lequel j'ai, entre autres, ces portions de code : Code :
Code :
Code :
Code :
Code :
Me.txtNom.SetFocus de la Sub InitFrmRechercheClients() surlignée. Si je fais Débogage, j'ai l'erreur 2115 avec la ligne txtNom.Value = UCase(txtNom.Value) de la Sub txtNom_LostFocus() surlignée. Quelqu'un pourrait-il m'aider svp ? |
||||||||||
|
|
00
|
|
|
#2 | ||||
|
Membre éclairé
![]() Inscription : novembre 2004 Messages : 216 ![]() |
Bonsoir,
1) dans ton événement txtNom_BeforeUpdate tu fais appel au sub RefreshQuery qui rafraichit ta requète SQL : Code :
2) De plus, dans le sub InitFrmRechercheClients tu donnes le focus au champ que tu es en train de mettre à jour (appelé dans sub RefreshQuery) : Code :
Essaie d'enlever le sub InitFrmRechercheClients dans le RefreshQuery pour voir si cela fonctionne mieux. |
||||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : février 2007 Messages : 148 ![]() |
1) La requête RefreshQuery remet à jour la liste qui se situe en-dessous des champs de saisie
2) Comment puis-je faire pour rendre le focus au champ txtNom alors ? Ce formulaire sert à effectuer une recherche en actualisant la requête SQL source de la liste en quittant le champ dans lequel on se place. Si l'on efface la saisie sans l'enregistrer, je veux que le formulaire soit réinitialisé avec la requête de départ. Comment puis-je faire cela sans rencontrer ces messages d'erreur ? |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : février 2007 Messages : 148 ![]() |
Finalement, j'ai retiré la ligne
Me.txtNom.SetFocus de la Sub InitFrmRechercheClients(). Lorsque je saisis quelque chose dans le champ txtNom et que je l'efface avant de changer de champ, la liste est bien réinitialisée. Seul différence, le curseur ne se repositionne pas sur le champ txtNom, mais cela reste un détail acceptable. Je m'en tiens donc là. Merci tee_grandbois pour ta réponse. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com