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 :

Comment forcer la mise à jour de la ligne active d'un sous-formulaire ? [AC-2013]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 22
    Points : 11
    Points
    11
    Par défaut Comment forcer la mise à jour de la ligne active d'un sous-formulaire ?
    Bonjour,

    J'aimerais à partir d'un bouton du formulaire principal, lire l'ensemble des records d'un sous-formulaire afin de le valider et si tout est ok réaliser des mises à jour dans d'autres tables via des recordset.
    Mon problème est que la lecture du sous-formulaire ne prend pas en compte le dernier record où l'encodage est en cours.
    J'ai lu bcp de posts sans trouver de solution
    Voici deux exemples de tentatives d'instructions que j'ai codées avant le code ci-dessous
    a) DoCmd.RunCommand acCmdSaveRecord 
    b) Forms![F_Vente]![SF_DetailVente].SetFocus 
    DoCmd.GoToRecord , , acNewRec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    If Not Me.SF_DetailVente.Form.Recordset.EOF Then
    Me.SF_DetailVente.Form.Recordset.MoveFirst
    Do While Not Me.SF_DetailVente.Form.Recordset.EOF
       NbRecordDetVente_global = NbRecordDetVente_global + 1
       ' mes validations et mises à jour sont réalisées ici
       Forms![F_Vente].[ZI_TotalVente] = Forms![F_Vente].[ZI_TotalVente] + Nz(Forms!F_Vente![SF_DetailVente]![MtVenteNet], 0)
       Me.SF_DetailVente.Form.Recordset.MoveNext
    Loop
    Me.SF_DetailVente.Form.Recordset.MoveFirst  ' pour ne pas provoquer un EOF a la prochaine lecture
    End If

    Pouvez-vous m'aider ?
    Merci d'avance

    Frédéric

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Mon problème est que la lecture du sous-formulaire ne prend pas en compte le dernier record où l'encodage est en cours.
    Pour enregistrer l'enregistrement en cours dans le sous-formulaire, cette instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.ctnrSousFormulaire.Form.Refresh
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Septembre 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Septembre 2016
    Messages : 22
    Points : 11
    Points
    11
    Par défaut
    Merci pour cette solution
    En fait, dans ma version access 2013, j'ai utilisé la méthode Requery et çà fonctionne du tonnerre
    Grand merci

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    « refresh » sauve l'enregistrement en cours.

    « requery » sauve l'enregistrement en cours et se repositionne sur le 1er enregistrement. (Ce qu'on ne souhaite pas toujours !)
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/06/2010, 19h49
  2. [AC-2003] Mise à jour de zone de liste déroulante dans sous formulaire
    Par fdalyon dans le forum IHM
    Réponses: 3
    Dernier message: 12/04/2010, 19h51
  3. [C#][ MSI] Comment effectuer une mise à jour d'application ?
    Par th3r1ddl3r dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/12/2005, 10h09
  4. Mise à jour d'une table à partir d'un sous formulaire
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 02/11/2005, 20h07
  5. Comment empêcher la mise à jour d'un contrôle à l'écran ?
    Par JojoLaFripouille dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2003, 12h52

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