IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

[A-03] Désactivation du forçage de déroulement d'une zône de liste déroulante


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Points : 46
    Points
    46
    Par défaut [A-03] Désactivation du forçage de déroulement d'une zône de liste déroulante
    Bonjour,

    Le contexte :
    Sous Access 2003 SP3,
    - l'évènement "sur changement" de la zône de liste déroulante d'un formulaire ouvert me permet de forcer le déroulement de la liste (méthode Dropdown).
    - l'évènement "sur clic" d'un élément sélectionné de la liste entraine l'ouverture (et l'activation) d'un second formulaire ouvert sur l'enregistrement correspondant à l'élément de liste sélectionné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub ZdListePatients_Click()
     
    'SendKeys "{F4}"
     
    NumEnreg = Me![ZdListePatients]
     
     
    ' Nota : Deux possibilités pour ouvrir le formulaire filtré :
    '   1-Appeler la requête existante dans la liste des requêtes (troisième argument de OpenForm) :
    '           DoCmd.OpenForm "patients", , "Fichier Patients ACTUEL"
    '   2-Filtrer per écriture SQL (quatrième argument de OpenForm) :
    DoCmd.OpenForm "patients", , , "[A sortir]=False"
     
    DoCmd.GoToControl "N° d'enregistrement"
    DoCmd.FindRecord NumEnreg, , , , , , True
     
    End Sub

    Le problème :
    Le fait d'activer le second formulaire m'empêche la désactivation du forçage du déroulement de la liste (tenté avec l'instruction SendKeys "{F4}").
    Par quel moyen puis-je donc désactiver ce forçage de liste, avant l'activation du second formulaire ?

    Merci d'avance.

  2. #2
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    pourquoi ne pas mettre le code sous Private Sub ZdListePatients_Change() tout simplement

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Ce n'est pas possible.

    L'évenement "sur changement" se produit dès l'introduction d'une première lettre au clavier.

    De ce fait, le code placé comme suggéré entraine l'ouverture du second formulaire avant meme le choix d'un enregistrement !

  4. #4
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Change() fonctionne avec une sélection dans la liste , LostFocus() semble en effet plus approprié si le choix est tapé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Sub ZdListePatients__LostFocus()

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Points : 46
    Points
    46
    Par défaut
    Merci de répondre à ce sujet.
    Hélas, rien n'y change (!) en utilisant l'évènement "sur changement".

    Le problème semble résulter d'un mauvais choix de positionnement de l'instruction "sendkeys" lors des évènement.

    D'autre part, en code VBA Access, si la méthode "Dropdown" permet de forcer le déroulement d'une liste de zône de liste, il ne semble pas exister la méthode complémentaire permettant de lever le forçage de déroulement de cette liste.

Discussions similaires

  1. [InnoDB] Déroulement d'une transaction
    Par jp_rennes dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 27/03/2006, 11h05
  2. Désactiver saisie dans un input d'une table
    Par dehbi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 21/03/2006, 18h11
  3. activer/désactiver une liste déroulante + date calendrier
    Par toome dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 05/01/2006, 15h56
  4. activer/désactiver une liste déroulante + date calendrier
    Par toome dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 03/01/2006, 14h55
  5. Réponses: 4
    Dernier message: 29/10/2005, 18h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo