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

Access Discussion :

Ouverture d'un enregistrement specifique à partir d'un autre formulaire


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 48
    Points : 37
    Points
    37
    Par défaut Ouverture d'un enregistrement specifique à partir d'un autre formulaire
    Bonjour,

    J'ai 2 formulaires basés sur la même requête, nommés f_facturation (les données apparaissent dans un sous formulaire) en mode feuille de données et un autre formulaire nommé f_facturation_fiche basé sur la même requête qui affiche un enregistrement sous forme de formulaire unique permettant de modifier l'enregistrement sélectionné a partir du premier formulaire.
    Le champs qui relie les deux est nommé num.

    L’événement sur clic d'un enregistrement du premier formulaire n'ouvre pas la fiche qui a le même num mais le premier enregistrement. Pourtant mon code semble correct:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "f_facturation_fiche", , , "num = & Forms![f_facturation]![num]"
    Merci pour votre aide.

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 97
    Points
    97
    Par défaut Ouverture d'un enregistrement specifique à partir d'un autre formulaire
    Bonjour,
    je pense que la syntaxe pour une variable numérique est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "f_facturation_fiche", , , "num = " & Forms![f_facturation]![num]
    pour une variable texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "f_facturation_fiche", , , "num = '" & Forms![f_facturation]![num] &"'"
    Cordialement

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Merci pour votre réponse ,
    En effet mon champ num est de type texte. A l'execution de votre proposition j'ai une erreur d'execution '2465' Microsoft ne trouve pas le champs "num" auquel l'expression fait référence.

    J'ai essayé de renomer le chemin en faisant référence au sous formulaire (fact):


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "f_facturation_fiche", , , "num = '" & Forms![f_facturation]![fact]![num] & "'"
    mais cela ne marche pas davantage

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 62
    Points : 97
    Points
    97
    Par défaut Ouverture d'un enregistrement specifique à partir d'un autre formulaire
    Re,

    Si sous-formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "f_facturation_fiche", , , "num = '" & Forms![f_facturation]![fact].form![num] & "'"

    Cordialement

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Testé

    mais l'ouverture de f_facturation_fiche se fait toujours sur le premier enregistrement sans tenir compte de la valeur de num ...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 48
    Points : 37
    Points
    37
    Par défaut
    Re,

    Il s'agit d'un problème d’accès aux données du sous formulaire à partir du formulaire qui le contient (problème de code pour le chemin d'accès) car lorsque j'ouvre le sous formulaire directement avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "sf_facturation", , , "num  = '" & Forms![f_facturation]![fact].Form![num] & "'"
    Le sous formulaire s'ouvre au bon enregistrement.

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    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 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    un formulaire perd certaines de ses propriétés quand il est utilisé en tant que sous-formulaire car il devient un contrôle ActiveX. On ne peut donc pas filtrer sur un enregistrement avec la commande Docmd.Openform car elle agit sur le formulaire principal uniquement.

    Il faudrait éventuellement utiliser Openargs pour filtrer le sous-formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "f_facturation_fiche", , , , , ,"num = '" & Forms![f_facturation]![fact].form![num] & "'"
    et dans le formulaire principal f_facturation_fiche, sur l'évènement Open:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Open(Cancel As Integer)
    If Not IsNull(Me.OpenArgs) Then
        Me.sf_facturation.Form.Filter = Me.OpenArgs
        Me.sf_facturation.Form.FilterOn = True
    End If
    End Sub
    Par contre, je me demande ce que contient le formulaire principal: y a t-il une relation père/fils avec le sous-formulaire ? Si oui, ne faut-il pas sélectionner aussi l'identifiant correspondant à la sélection du filtre du sous-formulaire ? Ou alors, est-ce un formulaire indépendant (non lié à une table) ?
    Une impression d'écran du formulaire serait une bonne initiative.
    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 ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/09/2020, 17h30
  2. Réponses: 2
    Dernier message: 24/03/2010, 17h29
  3. Réponses: 3
    Dernier message: 27/09/2007, 23h32
  4. Réponses: 3
    Dernier message: 07/12/2006, 08h51
  5. Ouverture d'une base Access à partir d'une autre base access
    Par Julien Dufour dans le forum Access
    Réponses: 3
    Dernier message: 19/10/2005, 17h13

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