Access 2003 : Code en sortie d'evenement et changement d'enregistrement

Résolu
talrasha Messages postés 14 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 26 août 2008 - 23 juil. 2008 à 09:31
phil2a Messages postés 95 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 22 décembre 2012 - 14 août 2008 à 14:54
Bonjour,

J'ai un petit souci. J'ai crée un formulaire de saisie tout simple et basé sur une table. Par exemple admettons que ce formulaire est crée uniquement avec l'assistant. Je souhaite mettre un code VB "SurSortie" d'un de mes champs.
Tout fonctionne très bien, mais le problème, c'est que :
Si l'on se place sur ce champ, et que l'on appuie sur un des boutons "Changer d'enregistrement", et bien le code VB est correctement éxecuté, mais le changement d'enregistrement ne se fait pas. Y a-t-il un moyen de faire fonctionner cela ou bien dois-je créer moi-même mes boutons de parcours?

Merci d'avance.
AK

7 réponses

phil2a Messages postés 95 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 22 décembre 2012
14 août 2008 à 13:10
ok
tu as découvert que cette macro SurSortie d'un contrôle est à mettre à la poubelle définitivement. Dans tous les cas elle peut et doit être remplacée avantageusement.
En l'occurence par une macro SurToucheActivée:
Private Sub t_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
 
3
phil2a Messages postés 95 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 22 décembre 2012
14 août 2008 à 14:54
Cette 2° question concerne la mise-à-jour ou non du formulaire.
Le test devrait figurer dans la macro AvantMiseAjour du formulaire.
3
phil2a Messages postés 95 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 22 décembre 2012
13 août 2008 à 15:25
tiens-tu compte du fait que la macro VB SurSortie réclame un TRUE pour autoriser la sortie du focus ?
0
talrasha Messages postés 14 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 26 août 2008
14 août 2008 à 00:23
Salut,
En fait, je n'avais jamais spécialement tenu compte de cette variable (dont je ne connaissais pas l'utilité ;))... J'ai donc testé, j'ai mis à la fin de mon code "Cancel True" puis "Cancel False". Dans le second cas, il se passe exactement la même chose que s'il n'y avait rien d'écrit, dans le 1e cas, la sortie de champ n'est effectivement plus faite. Je reste donc bloqué dans mon champ...ce qui ne m'intéresse pas.
Pour faire propre, je laisse le Cancel = False, mais cela ne règle pas le problème qui est que le changement d'enregistrement n'est pas effectué...

Merci quand même pour t'être penché sur la question.

Si tu veut faire un test par toi même, il te suffit d'avoir 1 table avec juste 1 champ texte, tu génére un formulaire sur cette table avec l'assisant, et tu met un code bidon (par exemple Texte0.Value = UCase(Texte0.Value) ), et vois par toi-même : si tu as le focus sur le champ, tu ne peut plus parcourir les enregistrements...

J'ai plus d'idée concernant ce problème...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
phil2a Messages postés 95 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 22 décembre 2012
14 août 2008 à 09:34
Pour faire propre, je laisse le Cancel = False, mais cela ne règle pas
le problème qui est que le changement d'enregistrement n'est pas
effectué...

eh si justement, dans ce cas,

le changement d'enregistrement est effectué...
0
talrasha Messages postés 14 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 26 août 2008
14 août 2008 à 11:52
Salut,

Il y a quelque chose que je ne dois pas cerner.
Tiens, derrière ce lien (http://dl.free.fr/plyGGmaN6 valable que 30j ;)) se trouve un fichier Access correspondant à la description de mon problème. J'ai beau mettre le "Cancel = False" un peu partout... je n'arrive pas à changer d'enregistrement...
0
talrasha Messages postés 14 Date d'inscription lundi 16 janvier 2006 Statut Membre Dernière intervention 26 août 2008
14 août 2008 à 14:24
Ok, effectivement on peut le remplacer dans la plupart des cas...

Je pense quand même que ça pourrait être interessant, par exemple pour vérifier si il existe des doublons dans une base...

Personellement, j'ai une base de données avec des gens dedans, donc une table
PERSONNE ( id_pers, nom, prenom, date_naiss)
et je dois vérifier lorsque l'on saisie quelqu'un s'il existe déjà une personne portant le même [nom,prenom]... si oui, j'affiche un message pour prévenir et proposer soit d'ouvrir la fiche de cette personne, soit permettre de continuer la saisie.
Je vois pas très bien comment ne pas mettre d'évenement "surSortie"... mais c'est pas grave, j'ai déjà mis mon programme en ligne et personne ne trouve que c'est réellement une contrainte.

Merci, finalement j'ai ma réponse : c'est un bug d'Access
0
Rejoignez-nous