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 :

Recalculer les données d'un sous formulaire


Sujet :

IHM

  1. #1
    Membre régulier Avatar de DJOUFOU
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 167
    Points : 90
    Points
    90
    Par défaut Recalculer les données d'un sous formulaire
    Bonjour à tous,
    Dans mon application j'ai un formulaire "Ventes" dans lequel se trouves un sous formulaire "Détails ventes"
    Je souhaite ajouter un bouton dans le formulaire qui va permettre de recalculer le montant du sous formulaire en actualisant les prix unitaires des articles.

    Exemple concret:

    Je fais une vente aujourd'hui d'un article X dont le prix unitaire est de 500f
    Demain, le prix unitaire de l'article a changé 600f, j'ai effectué le changement dans la table "ARTICLE" qui contient les codes articles, les désignation et les prix unitaires.
    Mais comment faire pour que la vente précédente tienne compte du nouveau prix et non de l'ancien?

    j’espère que je me fais comprendre, dans le cas contraire n’hésitez pas a me posez vos questions.

    Merci d'avance.
    Success is not final, faillure is not fatal.
    It is the courage to continue that count. So look always forward!

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Cela dépend de la structure de ta table Détails vente, source du sous-formulaire.
    Normalement si ton sous-formulaire est basé sur une requête, l'actualisation devrait être automatique.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Membre régulier Avatar de DJOUFOU
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 167
    Points : 90
    Points
    90
    Par défaut
    La table Détail Vente est structurée comme suit: CodeArt, Qté, PrixUnit, Montant.
    le champ PrixUnit va chercher les informations dans la table article en fonction du code saisi. suite à un code VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CodeArt_BeforeUpdate()
    if Me.[listePrix]="vente comptant" then
    Me![PrixUnit]=DLookup("[PrixComptant]", "Article", "[CodeArt]= ' " & [CodeArt] & " ' ")
    Elseif Me.[listePrix]="vente crédit" then
    Me![PrixUnit]=DLookup("[PrixCredit]", "Article", "[CodeArt]= ' " & [CodeArt] & " ' ")
    End if
    End sub
    j'ai utilisé cette option car il ya le prix à crédit et le prix au comptant.

    le problème demeure encore. quand je reviens sur une ancienne saisie, il faut d'abord que je ressaisisse le code article pour que le prix unitaire change
    Success is not final, faillure is not fatal.
    It is the courage to continue that count. So look always forward!

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Là, t'es "bloqué" vu que les valeurs de tes prix unitaires ne seront mis à jour que quand tu actualises le code article.
    La solution serait de créer un code VBA appelé à partir d'un bouton qui va parcourir tous les éléments de ton sous-formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    With Me.LeSFDetailVentes.Form.Recordset
        .MoveFirst
        While Not .EOF
            .Edit
            If ![listePrix] = "vente comptant" Then
               ![PrixUnit] = DLookup("[PrixComptant]", "Article", "[CodeArt]= ' " & [CodeArt] & " ' ")
            ElseIf ![listePrix] = "vente crédit" Then
               ![PrixUnit] = DLookup("[PrixCredit]", "Article", "[CodeArt]= ' " & [CodeArt] & " ' ")
            End If
            .Update
        Wend
    End With
    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Membre régulier Avatar de DJOUFOU
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 167
    Points : 90
    Points
    90
    Par défaut
    Super ! Madefemere vous m'avez très bien compris? c'est exactement ça mon problème. Maintenant j’essaie votre code mais j'ai un soucis, un message me dis ceci: "L'expression sur clic entrée comme paramètre de la propriété de type événement est à l'origine d'une erreur. Membre de méthode ou données introuvable. "

    je cherche le problème mais peut être vous savez ce qui ne va pas et pourrez m'aider.
    Apparemment je n'arrive pas a faire référence au sous formulaire
    Merci encore
    Success is not final, faillure is not fatal.
    It is the courage to continue that count. So look always forward!

  6. #6
    Membre régulier Avatar de DJOUFOU
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 167
    Points : 90
    Points
    90
    Par défaut
    j'ai trouvé, je n'arrivais pas a faire référence à mon sous formulaire en utilisant les tiret "_".

    Sauf que maintenant quand je clic sur mon bouton, l'application se plante et je suis obligé de la fermer. Souvent, on me met que le "recordset à echoué"
    pourquoi est ce qu'elle se plante? et comment dois-je corriger le recordset.
    Success is not final, faillure is not fatal.
    It is the courage to continue that count. So look always forward!

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Peux-tu poster la totalité du code s'il te plait pour voir.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  8. #8
    Membre régulier Avatar de DJOUFOU
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 167
    Points : 90
    Points
    90
    Par défaut
    voici le code:

    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
     
    Private Sub Actualiser_Click()
    With Me.Détails_facture_sous_formulaire.Form.Recordset
        .MoveFirst
        While Not .EOF
            .Edit
            If ![listePrix] = "vente comptant" Then
               ![PrixUnit] = DLookup("[PrixComptant]", "Article", "[CodeArt]= ' " & [CodeArt] & " ' ")
            ElseIf ![listePrix] = "vente crédit" Then
               ![PrixUnit] = DLookup("[PrixCredit]", "Article", "[CodeArt]= ' " & [CodeArt] & " ' ")
            End If
            .Update
        Wend
    End With
    and sub
    Et quand j'ai le message d'erreur qui me disait que je fais reference à un champ inexistant alors j'ai mis ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Actualiser_Click()
    With Me.Détails_facture_sous_formulaire.Form.Recordset
        .MoveFirst
        While Not .EOF
            .Edit
            If ![listePrix] = "vente comptant" Then
               ![PrixUnit] = ![PrixComptant]
            ElseIf ![listePrix] = "vente crédit" Then
               ![PrixUnit] = ![PrixCredit]
            End If
            .Update
        Wend
    End With
    and sub
    juste pour contourner les Dlookup en attendant.
    Success is not final, faillure is not fatal.
    It is the courage to continue that count. So look always forward!

  9. #9
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Re-,

    C'est une erreur de frappe j'espère le "and" à la in de ton code dans "and sub" ?

    De toutes les façons, a priori ton formulaire est en train de se corrompre. Compactes ta base de données et corriges la ligne dont je parle au-dessus.

    Normalement, le code devrait marcher.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  10. #10
    Membre régulier Avatar de DJOUFOU
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 167
    Points : 90
    Points
    90
    Par défaut
    oui c'est une erreur de frappe le "and sub" dans mon code de mon message sinon que dans l'application c'est bien "End sub".
    mais ça plante toujours. j'ai tout essayé et je continu a chercher.
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Actualiser_Click()
    With Me.Détails_Facture_sous_formulaire.Form.Recordset
        .MoveFirst
          While Not .EOF
              .Edit
            If ![ListePrix] = "vente comptant" Then
               ![PrixUnit] = ![PrixComptant]
            ElseIf ![ListePrix] = "vente crédit1" Then
                 ![PrixUnit] = ![PrixCredit1]
            End If
            .Update
        Wend
    End With
    End Sub
    Success is not final, faillure is not fatal.
    It is the courage to continue that count. So look always forward!

  11. #11
    Membre régulier Avatar de DJOUFOU
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 167
    Points : 90
    Points
    90
    Par défaut
    voila ce que ça donne quand je clic sur le bouton qui renferme le code de madefemere
    Nom : app plantée.jpg
Affichages : 126
Taille : 194,4 Ko
    Success is not final, faillure is not fatal.
    It is the courage to continue that count. So look always forward!

  12. #12
    Membre régulier Avatar de DJOUFOU
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 167
    Points : 90
    Points
    90
    Par défaut
    je n'ai vraiment pas encore trouvé malgré toutes ces nuits blanches. je ne sais toujours pas pourquoi le code que m'a proposé madefemere plante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Actualiser_Click()
    With Me.Détails_Facture_sous_formulaire.Form.Recordset
        .MoveFirst
          While Not .EOF
              .Edit
            If ![ListePrix] = "vente comptant" Then
               ![PrixUnit] = ![PrixComptant]
            ElseIf ![ListePrix] = "vente crédit1" Then
                 ![PrixUnit] = ![PrixCredit1]
            End If
            .Update
        Wend
    End With
    End Sub
    .
    Pourtant tout semble normal.
    ya t'il une autre solution?
    Pour rappel voici le sujet:
    Dans mon application j'ai un formulaire "Ventes" dans lequel se trouves un sous formulaire "Détails ventes"
    Je souhaite ajouter un bouton dans le formulaire qui va permettre de recalculer le montant du sous formulaire en actualisant les prix unitaires des articles.

    Exemple concret:

    Je fais une vente aujourd'hui d'un article X dont le prix unitaire est de 500f
    Demain, le prix unitaire de l'article a changé 600f, j'ai effectué le changement dans la table "ARTICLE" qui contient les codes articles, les désignation et les prix unitaires.
    Mais comment faire pour que la vente précédente tienne compte du nouveau prix et non de l'ancien?

    Merci d'avance.
    Auusi
    La table Détail Vente est structurée comme suit: CodeArt, Qté, PrixUnit, Montant.
    le champ PrixUnit va chercher les informations dans la table article en fonction du code saisi. suite à un code VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CodeArt_BeforeUpdate()
    if Me.[listePrix]="vente comptant" then
    Me![PrixUnit]=DLookup("[PrixComptant]", "Article", "[CodeArt]= ' " & [CodeArt] & " ' ")
    Elseif Me.[listePrix]="vente crédit" then
    Me![PrixUnit]=DLookup("[PrixCredit]", "Article", "[CodeArt]= ' " & [CodeArt] & " ' ")
    End if
    End sub
    j'ai utilisé cette option car il ya le prix à crédit et le prix au comptant.

    le problème demeure encore. quand je reviens sur une ancienne saisie, il faut d'abord que je ressaisisse le code article pour que le prix unitaire change
    Merci de vous pencher sur mon problème. ça se sera un véritable coup de pousse.
    Success is not final, faillure is not fatal.
    It is the courage to continue that count. So look always forward!

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/09/2009, 10h56
  2. Récupérer les données d'un sous formulaire
    Par kiki.gaby dans le forum IHM
    Réponses: 4
    Dernier message: 23/11/2008, 18h33
  3. Réponses: 2
    Dernier message: 03/07/2007, 11h09
  4. Réponses: 2
    Dernier message: 02/06/2007, 17h21
  5. Réponses: 3
    Dernier message: 06/07/2006, 18h49

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