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

IHM Discussion :

Ouvrir un formulaire en fonction d'une valeur contenue dans un autre formulaire [AC-2016]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Ouvrir un formulaire en fonction d'une valeur contenue dans un autre formulaire
    Bonjour,
    J'ai lu avec grand intérêt la documentation disponible sur le sujet, mais ça fait quelques heures que je tourne en rond avec une erreur Code 2450.

    J'ai un formulaire Frm_GestionVerif_doublon qui doit me permettre de vérifier qu'un client n'est déjà pas encodé dans la base de données. Ce formulaire contient un sous-formulaire basé sur une requête qui filtre sur un champ indépendant Nom_txt.
    Tout fonctionne correctement.

    Dans le résultat qui s'affiche, j'ai créé un bouton en face de chaque ligne qui doit permettre à l'utilisateur d'être renvoyé directement sur la fiche client qui existe déjà -> frm_GestionClient. Ce formulaire est construit sur un champ modifiable0 (liste déroulante des clients sur base de la tables clients). Le champ qui doit me permettre de lier le tout est bien présent et se nome N_clt (numéro de client)

    J'ai suivi vos conseils, mais cela ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande19_Click()
    DoCmd.OpenForm "Frm_gestionClient", , , "[Modifiable0] =" & Forms![Frm_GesionVerif_doublon]![N_clt]
    End Sub
    Merci pour votre aide.

  2. #2
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Bonjour,

    Je vois Modifialbe0 dans le code : erreur de saisie ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Arkham46 Voir le message
    Bonjour,

    Je vois Modifialbe0 dans le code : erreur de saisie ?
    merci, effectivement j'ai modifié, mais malgré cette correction cela ne fonctionne toujours pas .

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 637
    Points : 14 611
    Points
    14 611
    Par défaut
    bonjour,
    en général, une liste déroulante n'a pas de valeur chargée à l'ouverture d'un formulaire, c'est l'évènement Click ou AfterUpdate qui la charge.
    Il faut donc utiliser le paramètre OpenArgs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Commande19_Click()
    DoCmd.OpenForm "Frm_gestionClient", OpenArgs:= Forms![Frm_GesionVerif_doublon]![N_clt]
    ' ou
    'DoCmd.OpenForm "Frm_gestionClient", , , , , , Forms![Frm_GesionVerif_doublon]![N_clt] 
    End Sub
    et dans le formulaire Frm_GesionVerif_doublon tester la valeur d'OpenArgs et exécuter le code associé de Modifiable0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Load()
    If Not IsNull(Me.OpenArgs) Then
        Me.Modifiable0 = Me.OpenArgs
        Call Modifiable0_Click ' ou Call Modifiable0_AfterUpdate
    End If
    End Sub
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Grand merci à toi ! Pour ton information, j'ai du ajouter à ton premier code le sous formulaire dans lequel se trouvait [N_Clt] :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande19_Click()
    DoCmd.OpenForm "Frm_gestionClient", OpenArgs:=Forms![Frm_GestionVerif_doublon]![Frm_verification_doublon_clt]![N_clt]
    End Sub
    Ensuite sur l'autre formulaire j'ai adapté comme suit (après quelques tests)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Load()
    DoCmd.Maximize
    If Not IsNull(Me.OpenArgs) Then
        Me.Modifiable0 = Me.OpenArgs
     End If
    End Sub
    Encore merci et bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/02/2014, 12h51
  2. Réponses: 0
    Dernier message: 30/09/2013, 14h18
  3. Réponses: 2
    Dernier message: 30/06/2011, 10h02
  4. Réponses: 2
    Dernier message: 31/03/2009, 15h48
  5. Réponses: 4
    Dernier message: 12/06/2006, 11h46

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