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 :

Transférer les valeurs d'une table à une autre en fonction de la valeur d'un champ [AC-2013]


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Boxtell
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Avril 2016
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2016
    Messages : 81
    Par défaut Transférer les valeurs d'une table à une autre en fonction de la valeur d'un champ
    Bonjour,

    J'explique mon problème qui est très très précis, j'ai besoin d'un expert

    J'ai une table (Liste_OP) listant un ensemble d'opérations ayant chacune différents champs (Un numéro, un temps d'éxécution, un outil à utiliser, un emplacement de travail etc...).

    L'un des champs (OP_Statut) nous dit si l'opération a été réalisé ou pas (C'est la personne qui réalisera l'opération qui clic sur un bouton d'une interface qui inscrit le mot "effectuée" dans le champ OP_Statut de l'opération correspondante).

    J'aimerais alors créer une table (Liste_OP_Effectuées) qui serais vide au départ et se remplirais au fur et à mesure des opérations qui ont pour OP_Statut la valeur : "Effectuée". Cela est-il possible ?

    C'est à dire qu'à chaque fois que quelqu'un validera une opération (Statut : Effectuée), l'ensemble des infos de la ligne de l'opération viendra s'ajouter dans la table Liste_OP_Effectuées.

    JE vous avoue que je croise les doigts pour que cela soit possible.

    MERCI
    Cordialement

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Oui bien sûr c'est tout à fait réalisable il y a rien de bien sorcier à cela.

    Sur le principe, ce qui me dérange un peu ce que tu veux vider la table avant et là il faudra clarifier par des explications car il faudra prendre la décision de qui efface la table avant d'y mettre de nouvelles données.

    Pour ma part je n'effacerai pas la table complètement mais je marquerai comme supprimé avec un champ supplémentaire qui les définira comme tel.

    Sur le plan fonctionnel, si les données sont saisies à partir d'un formulaire, il suffira de faire une insertion par l'intermédiaire d'une procédure SQL qui sera définie dynamiquement en fonction du fait que la condition est remplie ou pas.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  3. #3
    Membre confirmé Avatar de Boxtell
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Avril 2016
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2016
    Messages : 81
    Par défaut
    Bonjour,

    Merci pour la rapidité du retour

    Par rapport aux explications que tu as pu me donner je vais clarifier mon besoin :

    -Je ne souhaite pas spécialement vider la table, je disais seulement que je démarrais d'une table vide au tout début, elle se remplira au fur et à mesure sans nécessité de supprimer les anciennes valeurs.

    -Deuxièmement je ne suis pas tout à fait sur qu'on soit totalement en phase par rapport au système que j'imagine. J'ai une table qui existe déjà avec un certains nombre de données par ligne. Dans mon formulaire l'utilisateur ne fait que renseigner une seule de ces données par un clic bouton (le statut de l'opération). Ce clic bouton pourrais tout de même permettre de transférer l'ensemble des données de ma ligne dans mon autre table ?

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Boxtell Voir le message
    Ce clic bouton pourrais tout de même permettre de transférer l'ensemble des données de ma ligne dans mon autre table ?
    Bah oui, si la condition est remplie pour le faire, donc pour toi : OP_Statut la valeur : "Effectuée" alors on peut envoyer...

    Ca donnerait un truc du style :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    Option Compare Database
    Option Explicit
     
    Private Sub cmdValider_Click()
        If MsgBox("Enregistrer la fiche ?", vbQuestion + vbYesNo, "Confirmer") = vbYes Then
            Call SauverLaFiche(Me.Identifiant)
            If Me.OP_Statut.Value = "Effectuée" Then
                If AlimenterTableListeOP(Me.Identifiant) = False Then
                    MsgBox "Le remplissage de la table 'Liste_Op' a échoué", vbExclamation
                End If
            End If
        End If
    End Sub
     
    Private Function AlimenterTableListeOP(ByVal ID As Long) As Boolean
    '[...]
     
        On Error GoTo L_ErrAlimenterTableListeOP
        'si tu n'a=s pas les valeurs présente ici tu passes par un recordset
     
        'si tu as toutes les valeurs, tu fait un INSERT
        CurrentDb.Execute "INSERT INTO Liste_OP (champ1texte, champ2num, champ3date...) VALUES ('valeur1', valeur2, #valeur3#);"
     
        AlimenterTableListeOP = True
        On Error GoTo 0
    L_ExAlimenterTableListeOP:
        Exit Function
     
    L_ErrAlimenterTableListeOP:
        AlimenterTableListeOP = False
        Resume L_ExAlimenterTableListeOP
    End Function
     
    Private Sub SauverLaFiche(ByVal ID As Long)
     
        On Error GoTo L_ErrSauverLaFiche
        If FicheCompletee Then
            DoCmd.RunCommand acCmdSaveRecord
        End If
     
        On Error GoTo 0
    L_ExSauverLaFiche:
        Exit Sub
     
    L_ErrSauverLaFiche:
        MsgBox Err.Description, 48, Err.Source
        Resume L_ExSauverLaFiche
    End Sub
     
    Private Function FicheCompletee() As Boolean
    'Renvoie True si la fiche est complète
        On Error GoTo L_ErrFicheCompletee
     
     
        FicheCompletee = True
        On Error GoTo 0
    L_ExFicheCompletee:
        Exit Function
     
    L_ErrFicheCompletee:
     
        FicheCompletee = False
        Resume L_ExFicheCompletee
    End Function
    Bon c'est très schématisé mais sur le fond, c'est une piste d'inspiration...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  5. #5
    Membre confirmé Avatar de Boxtell
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Avril 2016
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2016
    Messages : 81
    Par défaut
    Merci pour ta réponse.

    Je suis en train de travailler dessus cependant, ce n'est pas la première fois que je bute la dessus, qu'est ce que tu veux dire quand tu met Me.Identifiant dans ton code ? (C'est quelque chose que je doit remplacer par un nom de table et un nom de champ ?)

    Cordialement

  6. #6
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Me.Identifiant représente un champ permettant d'identifier l'enregistrement en cours de façon unique (en général, c'est une clé primaire de type NuméroAuto).

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/10/2014, 16h42
  2. [Vxi3] Requête Valeurs sans occurrences d'une table à l'autre
    Par DamienBC dans le forum Designer
    Réponses: 1
    Dernier message: 16/12/2013, 15h32
  3. [Toutes versions] Eclater une table en plusieurs en fonction d'un critère dans un champ
    Par Invité dans le forum Contribuez
    Réponses: 2
    Dernier message: 09/05/2011, 18h46
  4. Transférer des données d'une table à une autre
    Par picoloto dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/12/2005, 10h01
  5. TRansférer des données d'une table à l'autre
    Par kernel57 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 06/10/2005, 14h05

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