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 :

Transfert données d'une table vers une autre


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2021
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2021
    Messages : 33
    Points : 23
    Points
    23
    Par défaut Transfert données d'une table vers une autre
    Bonjour à tous,
    J'ignore si le sujet a déjà été évoqué ici, sans doute que oui, hélas n'étant pas suffisamment averti en programmation VBA, j'ai du mal à retrouver dans la FAQ l'information qui me permettrait d'atteindre mon objectif.
    J'aimerais, à l'aide d'une procédure qui serait enregistrée dans un module, pouvoirs réaliser la tache suivante:

    Il y a 2 tables dans ma base de données nommée Acces_Abs.accbd
    La table T_Absence et la table T_Absence_Det

    Dans la table T_Absence, pour chaque enregistrement, il y a une date de début et une date de fin avec un motif d'absence et le nombre de jours d'absence qui correspond à la différence entre les 2 dates.
    Je souhaite copier les enregistrements de cette table vers la table T_Absence_Det, tout en les dupliquant autant de fois que le nombre de jour d'absence et en incrémentant la date de 1 en 1 à a chaque fois.

    exemple sur 2 enregistrements :

    T_Absence.

    PIERRE ; ABSENCE 1 ; 08/03/2021 ; 10/03/2021 ; 3 jrs
    PAUL; ABSENCE 4; 01/03/2021 ; 05/03/2021 ; 5 jrs


    T_Absence_Det.

    PIERRE ; ABSENCE 1 ; 08/03/2021
    PIERRE ; ABSENCE 1 ; 09/03/2021
    PIERRE ; ABSENCE 1 ; 10/03/2021
    PAUL; ABSENCE 4; 01/03/2021
    PAUL; ABSENCE 4; 02/03/2021
    PAUL; ABSENCE 4; 03/03/2021
    PAUL; ABSENCE 4; 04/03/2021
    PAUL; ABSENCE 4; 05/03/2021

    Vous trouverez, en pièce jointe, la BDE en question.
    En vous remerciant par avance, pour l'aide que vous voudrez bien m'apporter,
    cordialement,
    azzangot
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 862
    Points
    56 862
    Billets dans le blog
    40
    Par défaut
    Bonsoir,

    Tu peux faire ça de façon efficace avec une table de comptage qui comporte un seul champ n et des lignes n= 0, n=1, n=2, n=3, n=4, etc.

    La requête qui suit fait le boulot :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [identifiant], [nom usuel], [prénom], [type absence], [début absence] + n AS date_absence
    FROM T_Absence, comptage
    WHERE [fin absence]-[début absence] >= n;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2021
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2021
    Messages : 33
    Points : 23
    Points
    23
    Par défaut Transfert données d'une table vers une autre
    Bonsoir f-leb et merci d'avoir répondu, même si je vois pas tres bien ce que tu entends par table de comptage ?
    Sincèrement je comprends pas ton idée.
    Peut être que tu peux me préciser tout ca ?

    Merci,
    A+

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 862
    Points
    56 862
    Billets dans le blog
    40
    Par défaut
    Une table toute bête

    Elle s'appelle comptage, et elle a un seul champ n :

    Nom : comptagen.PNG
Affichages : 106
Taille : 5,6 Ko

  5. #5
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Une solution en VBA. Le code se trouve dans un module de formulaire et est déclenché par un bouton de commande.
    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
    Sub detabsence()
    On Error GoTo ErrorHandler
    Dim dbs As DAO.Database
    Dim rstSource As DAO.Recordset, rstCible As DAO.Recordset
    Dim strSqlS As String, strSqlC As String
    Dim i As Integer, j As Integer
     
    Set dbs = CurrentDb
     
    strSqlS = "SELECT id, identifiant, nom_usuel, prenom, type_absence, debut_absence, fin_absence, nb_jours" _
            & " FROM tblAbsences"
    strSqlC = "SELECT id_det, identifiant, nom_usuel, prenom, type_absence, date_absence" _
            & " FROM tblAbsencesdet"
     
    Set rstSource = dbs.OpenRecordset(strSqlS, dbOpenSnapshot)
    Set rstCible = dbs.OpenRecordset(strSqlC, dbOpenDynaset)
     
    rstSource.MoveLast
    rstSource.MoveFirst
     
    Do While Not rstSource.EOF
        i = 0
        j = rstSource("nb_jours")
        Do Until i = j
            rstCible.AddNew
            rstCible!identifiant = rstSource!identifiant
            rstCible!nom_usuel = rstSource!nom_usuel
            rstCible!prenom = rstSource!prenom
            rstCible!type_absence = rstSource!type_absence
            rstCible!date_absence = rstSource!debut_absence + i
            rstCible.Update
            i = i + 1
        Loop
        rstSource.MoveNext
    Loop
    Exit Sub
    ErrorHandler:
       MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Commande0_Click()
        detabsence
    End Sub
    Fichiers attachés Fichiers attachés
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  6. #6
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2021
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2021
    Messages : 33
    Points : 23
    Points
    23
    Par défaut wahou MERCI !
    Un grand MERCI Hyperion13 ! ca fonctionne nickel !
    En parcourant quelques explications sur le net au sujet d'access, j'avais compris que c'etait avec l'objet Recodset que ca pouvait se faire,
    mais sincèrement, je n'y serais pas parvenu. Je ne suis pas assez averti pour cela.
    En lisant le code que tu m'as écrit, j'ai des questions qui me viennent à l'esprit :

    Pourquoi il y a le préfixe DAO ? DAO.Database, DAO.Recodset... ?

    Pourquoi ces 2 commandes s'enchainent l'une à la suite de l'autre ?
    rstSource.MoveLast
    rstSource.MoveFirst

    Question subsidiaire !
    Combien d'années d'expérience en programmation VBA as tu ?

    Encore mille merci !
    C'est vraiment TOP !

  7. #7
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Vous avez des notions DAO ici
    N'oubliez pas de clôturer le sujet.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  8. #8
    Membre à l'essai
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2021
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2021
    Messages : 33
    Points : 23
    Points
    23
    Par défaut Merci Hyperion13
    Un grand merci à vous !
    J'irai voir les explication dans le lien que vous m'avez envoyé
    et je clos mon dossier ce jour.
    Merci, bonne journée !

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

Discussions similaires

  1. [MySQL] href d'une donnée de ma table vers une autre donnée de ma table
    Par <-mini-> dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 27/06/2008, 09h00
  2. Transferer des données d'un table vers une autre
    Par pooi1 dans le forum VBA Access
    Réponses: 4
    Dernier message: 31/05/2007, 01h05
  3. [PostGreSQL] Transfert de données d'un table vers une autre
    Par psychomatt dans le forum Langage SQL
    Réponses: 5
    Dernier message: 16/03/2006, 16h57
  4. Réponses: 4
    Dernier message: 19/09/2005, 15h59
  5. récupérer juste les données d'une autre table
    Par rangernoir dans le forum Access
    Réponses: 5
    Dernier message: 13/09/2005, 14h52

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