Visites

   visiteurs

   visiteurs en ligne

Sujet n°264 Conditionner le curseur
    par Prisson le 29/08/2009 : 12:33

Bonjour Pierre

J'ai deux formulaires (achat et vente) donc chacun comporte un sous formulaire lié (detail achat et detail vente). la tabulation est bien ordonnée.

Dans le dernier champ de chaque formulaire avant le sous formulaire j'ai placé la macro incorporée after update suivante : atteindrecontrole (sous formulaire) et atteindre controle (Ref prod) ; Ref prod etant le premier champ du sous formulaire.

Mai ça marche pour le formulaire Achat mais pour Vente après le premier enregistrement le curseur va directement au dernier control du sous formulaire. Comment regler ce problème ?

Merci d'avance de votre aide.

Lendcap

 


Réponse n° 1 par 3Stone le 29/08/2009 : 14:37
Bonjour,


Dixit...
ça marche pour le formulaire Achat mais pour Vente après le premier enregistrement le curseur va directement au dernier control du sous formulaire. Comment regler ce problème ?


Et bien, je pencherai tout de même pour un problème de tabulation... rolleyes

A moins que tu aies déjà du code qui perturbe le bon déroulement.

NB: Je n'utilise (et je n'ai jamais utilisé) ce que dans Access on appelle les "macros" et dont Access 2007 fait un usage intensif, "par défaut" confused
Je préfère de loin utiliser uniquement du VBA. L'approche semble plus ardue dans un premier temps, pourtant, il n'en est rien... et les progrès sont autrement plus rapide par la suite. Et la maintenance de la base en est bien simplifiée.

Cordialement,
Pierre(3stone)

Réponse n° 2 par Prisson le 15/09/2009 : 14:28

Bonjour,

je crois comprendre ce qui se passe. En fait quand je bascule du formulaire principal au sous formulaire, après la dernière ligne d'enregistrement du sous formlaire, en tapant sur entrée le curseur se balade sur les champs de la ligne suivante et ce n'est qu'au dernier champ quand le curseur vraissemblablement se rend compte qu'il n'y a pas d'enregistrement qu'il bascule hors du sous formulaire mais en laissant en surbrillance le dernier champ du sous formulaire et il me parait normal qu'au prochain enregistreement du formulaire principal ce champ soit le premier à prendre le focus puisqu'il est celui qui est resté en leger surbrillance. Je crois que la solution serait d'actualiser le sous formulaire après la dernière ligne d'enregistrement pour que le champ qui soit en leger surbrillance soit le premier champ du sous formulaire dans l'ordre de tabulation.

Merci pour votre aide si j'ai pu me faire comprendre.

Lendcap

 

Réponse n° 3 par 3Stone le 15/09/2009 : 17:30
Bonjour,


Dixit...
Merci pour votre aide si j'ai pu me faire comprendre.


Je me tâte wink

D'abord, il faut éviter les macros pour faire voyager le curseur, sauf si l'on sait exactement ce que l'on veux ET que l'on maîtrise les conséquence. A défaut, on ne comprend plus ce qui se passe dans le formulaire...

Si l'on ne souhaite pas se déplacer entre les l'enregistrements à l'aide de la souris et que cette "ligne vide" qui est en fait prévue pour la saisie d'un nouvel enregistrement, il faut placer le formulaire en "pas de saisie".
Voir pour cela la propriété "Entrée données" du formulaire.
De cette façon, Access n'affiche pas cette ligne vide et le curseur ne va pas s'y perdre.

Comment entrer les données ?
Et bien, il faut ajouter un bouton qui permet à nouveau la saisie.


Me.AllowAdditions = True
Me.LeChamp.SetFocus


et dans la Sub de l'événement "Après mise à jour", on emêche à nouveau les ajouts:


Me.AllowAdditions = False


Cordialement,
Pierre(3stone)

[ Retour à la liste des sujets ]

Recherche



Préférences

Se reconnecter
---

Votre nom (ou pseudo) :

Votre code secret


 Nombre de membres 1 membre


Connectés :

( personne )

Haut