Bonjour,
Est-il possible de déplacer le focus (en VBA) dans un formulaire ou un sous-formulaire qui s’affiche en mode Feuille de données ?
J'utilise Access 2000.
Bonjour,
Est-il possible de déplacer le focus (en VBA) dans un formulaire ou un sous-formulaire qui s’affiche en mode Feuille de données ?
J'utilise Access 2000.
Salut Blue Sky,
J'ai faite une petite recherche sur google... je pense qu'avec ces codes, tu pourrais t'en sortir :
Malheusement, je n'ai pas encore utilisé de sous-formulaires, alors j'ignore comment utiliser ces codes à l'aide de ta form mère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 docmd.GoToRecord,,acnext docmd.GoToRecord,,acprevious
J'espère que ces informations auront pu t'aider.
Merci sim911
Malheureusement, ça ne fonctionnera pas.
Je ne veux pas changer d'enregistrement, je veux atteindre un autre contrôle dans le même enregistrement.
Bonsoir,
Quel est le problème? La base envoyée sur le précédent post correspond à ta demande. Il suffit de mettre les S/forms en mode feuille de données.
Pièce jointe 22825
Cordialement.
Ps : Un véritable Pitt-Bull-->Je lache pas.
Bon, voici de nouveaux éléments suite à d'autres tests effectués sur mes formulaires :
Le code qui déplace le focus est placé dans un contrôle de liste modifiable et répond à un événement "sur absence dans liste".
Voici le début du code :
J'ai essayé le code dans un formulaire principal et cela ne fonctionne pas non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DoCmd.RunCommand acCmdUndo Me.Nom.SetFocus
Le code fonctionne quand la propriété "Affich par défaut" du formulaire est "Mode simple", mais pas lorsqu'elle est à "Feuille de données".
Pour l'utilisation que je prévoit en faire, j'ai besoin que le code fonctionne quand le formulaire est affiché en "Feuille de données".
(Pardon pour l'information incomplète avant)
j'avais le meme souci et j'ai trouver une réponse ici
voilou
Merci mnssylvain, mais ça ne fonctionne pas pour moi.
En fait, quand j'essaie de changer le focus, même dans un formulaire principal qui ne contient pas de sous-formulaire, ça ne fonctionne pas.
Le problème vient du fait que j'affiche le formulaire en "Feuille de données" et que le code répond à un événement "Sur absence dans liste" (contrôle Zone de liste modifiable).
Quand j'essaie dans un autre mode d'affichage, je n'ai pas d'erreur.
Quand j'essaie le code dans un autre sorte de contrôle (en réponse à un autre sorte d'événement), et avec un affichage "Feuille de données", je n'ai pas d'erreur non plus.
et si tu te déplace dans tes enregistrements
je suis aussi en mode feuille de donées......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Forms![lformulaire principal]![sous formulaire].SetFocus Forms![formulaire principal]![ sous formulaire]![date].SetFocus DoCmd.GoToRecord , , acNewRec
Merci mnsSylvain, mais ça ne fonctionne toujours pas.
J'ai joint un petit fichier exemple.
Ce que je veux faire : Quand j'entre un organisme qui n'est pas dans la liste (exemple : "Z"), je veux que le focus se positionne dans le champ "Nom".
Merci si quelqu'un peut m'aider.
Blue Sky
si je comprends bien dans ton formulaire tu veux que quand tu ajoutes un organisme le focus soit sur nom.....
si c'est bien ça:
1) la zone de liste LienIDOrganisme est sur "limiter à lste" donc tu ne peux pas ajouter un nouveau organisme.
2) est ce qu'il peut y avoir plusieurs noms pour le meme organisme?
dans ce cas tu crées un formulaire principal sur la table organisme et en sous formulaire tu mets les personnes appartenant à cet organisme. (le focus est alors déplaçable comme indiqué précédement)
sinon c'est l'inverse qu'il faut faire, mettre un champ idcontact dans la table organisme.....
3) j'ai peut etre pas tout bien compris....
dans ton fichier j'ai 2 tables (organisme et contact) et 1 sous formulaire, il ne manquerai pas le formulaire père ?
bon j'espère ne pas avoir été trop mauvais tiens moi au courant
Bonjour,
Semble correspondre à la demande:
Cordialement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub Organisme_NotInList(NewData As String, Response As Integer) Response = acDataErrContinue Me.Organisme = Me.Organisme.ItemData(0) Me.Nom.SetFocus 'MsgBox "Veuillez choisir un organisme répertorié.", vbExclamation, _ "On a la tête en l'air?" End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager