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

Résolu
Signaler
Messages postés
14
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
26 août 2008
-
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012
-
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

Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

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
 
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

Cette 2° question concerne la mise-à-jour ou non du formulaire.
Le test devrait figurer dans la macro AvantMiseAjour du formulaire.
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

tiens-tu compte du fait que la macro VB SurSortie réclame un TRUE pour autoriser la sortie du focus ?
Messages postés
14
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
26 août 2008

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...
Messages postés
95
Date d'inscription
mardi 20 janvier 2004
Statut
Membre
Dernière intervention
22 décembre 2012

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é...
Messages postés
14
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
26 août 2008

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...
Messages postés
14
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
26 août 2008

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