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 :

Changer valeur d'un champ par rapport a un champ d'un autre enregistrement [AC-2019]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 279
    Par défaut Changer valeur d'un champ par rapport a un champ d'un autre enregistrement
    Bonjour,
    Je viens vers vous car je suis entrain de faire un formulaire pour gérer le Surplus, en gros j'ai un formulaire ou j'ai tout les enregistrements ou il y a du Surplus qui s'affiche:
    Nom : Surplus.PNG
Affichages : 208
Taille : 23,2 Ko
    Puis je coche l'enregistrement auxquelles je souhaite enlever ce Surplus pour l'affecter à une autre commande qui possède la même référence !
    Nom : surplus 2.PNG
Affichages : 201
Taille : 39,3 Ko

    Mais lorsque je met une valeur au champ Ventilation celui-ci ne s'enlève pas du champ Surplus de l'enregistrement précédemment coché en gros quand je met 5 à Ventilation j'aimerai que Surplus diminue de 5 ?
    ce code correspond a la première capture :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
     
    Private Sub Ventilation_AfterUpdate()
     
    DoCmd.RunSQL " UPDATE EnAttPlanification SET Surplus = Surplus - Ventilation" & _
                " WHERE Choix=-1;"
     
    'Me.Surplus = Surplus - Ventilation
    'Me.QteManquante = QteManquante - Ventilation
    'WHERE Choix = -1
     
    End Sub
     
    Private Sub Ventiler_Click()
     
    'DoCmd.OpenForm "F_Surplus3"
    'Ici faire afficher un formulaire qui montre les N° identique ...
    ' et possibilité de changer surplus...
    majSousFormulaire
     
    End Sub
     
     
    Public Sub majSousFormulaire()
    Dim RS As DAO.Recordset
    Dim SQL As String
     
           SQL = "SELECT * " & _
                 "FROM EnAttPlanification  " & _
                 "WHERE EnAttPlanification.Choix=-1 ;"
               '  "WHERE EnAttPlanification.Numero = EnAttPlanification.Numero " & _
                 "WHERE EnAttPlanification.Choix=True ;"
     
                 Set RS = CurrentDb.OpenRecordset(SQL)
     
     
     DoCmd.OpenForm "F_Surplus3", , , "NumArticle = '" & RS.Fields("NumArticle").Value & "'"
    End Sub
    Et celui-ci à la deuxième :
    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 QteManquante_AfterUpdate()
     
    Me.QteManquante = QteManquante - Ventilation
     
     
     
    End Sub
     
    Private Sub Ventilation_AfterUpdate()
        CurrentDb.Execute "UPDATE EnAttPlanification SET EnAttPlanification.Surplus = [Surplus]-[Ventilation]" _
        & " WHERE Choix = True", dbFailOnError
     
        Me.QteManquante = QteManquante - Ventilation
     
    End Sub
    J'espère que je me suis correctement exprimé afin que vous compreniez mon problème.

  2. #2
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    Salut
    Dans tes query UpDate() tu n'indiques pas entre-autre la relation entre le champ "commande" de F_Surplus2,avec celui de F_Surplus3.
    La "commande" correspond à quel champ dans les 2 frm ? Je note que des données sont différentes entre les 2 articles.

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 279
    Par défaut
    Bonjour,
    Il n'y a pas de champ commande (enfaite chaque enregistrement (ligne)) correspond à une commande dans les formulaires.
    Oui des données sont différente entre les deux articles et c'est tout à fait normal, quand je clique sur Ventiler il m'ouvre un formulaire "F_Surplus3" avec les enregistrements possédant la même référence (NumArticle) que l'enregistrement précédemment coché dans "F_Surplus2" .

    Voici une BDD avec juste les formulaire concerné : SURPLUS DATABASE.rar
    Car pour le moment c'est le champ Ventilation à côté de l'enregistrement coché qui est pris en compte dans la diminution hors de préférence j'aimerai même que ce champ ne soit plus présent.

  4. #4
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    Que je comprenne bien.
    Dans F_Surplus2,tu coches un article (3ème ligne) parce que Surplus>0. Tu dois donc ouvrir F_Surplus3,pour t'assurer qu'il y a une correspondance. Si correspondance, le Surplus=2,dans F_Surplus2,doit passer à 0 pour être affecté au Surplus de l'article correspondant dans F_Surplus3,

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 279
    Par défaut
    C'est cela, si le Surplus avait été de 20 et qu'on en met 10 il en reste 10 encore en Surplus mais oui dans l'idée c'est ça.
    Le surplus qui est dans F_Surplus2 quand il est affecté dans F_Surplus3 cela fait diminué la QteManquante de l'article (cela fonctionne déjà).
    En gros vu qu'il y a du Surplus on met ce Surplus sur une autre commande pour évité d'en produire plus que nécessaire (diminution de la QteManquante)

  6. #6
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 288
    Par défaut
    Ok, c'est dans F_Surplus3,qu'il faudra saisir la valeur de Surplus pour qu'on puisse diminuer celui dans F_Surplus2.
    Et si dans F_Surplus3,il y avait plusieurs mêmes articles ?

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/02/2011, 07h45
  2. Réponses: 3
    Dernier message: 12/05/2010, 22h00
  3. [AC-2007] Récupérer en valeur par défaut la valeur d'un champ d'une autre table ?
    Par tibofo dans le forum Modélisation
    Réponses: 1
    Dernier message: 01/10/2009, 18h07
  4. Réponses: 11
    Dernier message: 12/04/2007, 12h28
  5. Réponses: 1
    Dernier message: 02/04/2007, 12h37

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