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

Requêtes et SQL. Discussion :

Archivage des données [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut Archivage des données
    Bonjour,

    En faisant des recherches sur ce forum sur l'archivage et l'historisation des données, j'ai reussi a trouver une base exemple, qui a quelques exceptions me convient bien.

    J'ai actuellement une base scindée, elle est partagée entre moi et deux de mes collègues, elle comporte des données relatives au budget de 19 structures et consolidé a notre niveau.

    Le problème, est que je n'arrive pas a adapter cette base a mes besoins, comme ajouté des champs ou suprimé d'autres, il serait possible aussi, a l'envoi des données vers la table d'archivage de les effacer de la table source.

    Merci.

    Cordialement.



    BDArchivage_.rar

  2. #2
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Bonjour,

    dans ta base exemple, il n'y a rien de sorcier, il est juste question de copier les données d'une table vers une autre à l'aide d'une requête INSERT INTO.

    Si tu veux supprimer ensuite les données de la table source, il suffit d'éxécuter une seconde requête, DELETE cette fois-ci.

    Donnes plus de détails sur le "où tu bloques"...

    A+

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 273
    Points : 19 449
    Points
    19 449
    Billets dans le blog
    63
    Par défaut
    Bonsoir,

    En complément, vous pouvez aussi vous servir du créateur de requêtes pour créer votre requête insertion et y ajouter des champs ou un paramètre.

    Vous pouvez également basculer en mode SQL pour copier le code, tout ceci est bien décrit ici :

    https://jeannot45.developpez.com/art...tionrequetes1/

    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  4. #4
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Je m'excuse pour le retard, j'ai ces derniers jours pour cause de maladie.

    Je vous remercie pour vos réponses, il se trouve que cette petite base exemple est je crois la création de USER.

    Pour revenir a mon problème et répondre a la question de HDU71000, c'est qu'actuellement, je n'arrive pas a insérer un nouveau champ [Sigle_dir] ou supprimé un autre [URL], j'ai essayé via le code SQL, ca ne marche pas.

    merci

    cordialement.

  5. #5
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Bonjour,
    j'espère que ça va mieux.

    Tu peux donner la structure de tes 2 tables et le code sql que tu as testé ?

    A+

  6. #6
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Oui je vais mieux, merci, beaucoup.

    A vrai dire je suis en train de faire des tests sur la base exemple avant de passer a ma base, actuellement j'essaye d'insérer le champ [sigle_dire] et ca donne le le code sql suivant :


    En l'exécutant j'ai le message d'erreur suivant :

    Nom : Message erreur.png
Affichages : 124
Taille : 271,0 Ko

    Merci.

  7. #7
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    RE:

    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
    Private Sub CmdArchiver_Click()
    Dim leSQL As String
     
    leSQL = "INSERT INTO [Tableau 2] ( id, [no], nuf, titre, url, DateArchive,Sigle_dir ) " & _
    "SELECT [Tableau 1].id, [Tableau 1].[no], [Tableau 1].nuf, [Tableau 1].titre, [Tableau 1].Sigle_dir Replace([Tableau 1].url,'dossierA','dossierB') as doc, Date() AS Expr1 " & _
    "FROM [Tableau 1]" & _
    "WHERE (([Tableau 1].id) Not In (select id from [Tableau 2])) and titre like '" & Nz(Me.ParamTitre, "*") & "';"
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL leSQL
    DoCmd.SetWarnings True
     
    End Sub

  8. #8
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Il te manque une virgule avant le replace.

    A+

  9. #9
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Effectivement ca marche, mais les données ne sont plus dans l'ordre, c'est a dire que j'ai la date dans le champs [Sigle_dir] et les données de Sigle_dir dans le champs [URL]. Mais bon je verrais ca a en changeant leurs ordres dans la requête.

    Je reviens a mon premier poste, est il possible d'effacer la table source après envoi des données vers la table archives ?

    Merci.

  10. #10
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Oui, tu as inverti les 2 dernières colonnes dans ton sql

    Pour supprimer, il te suffit d'exécuter une requête suppression ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim SQLSupp As String
     
    SQLSupp = "DELETE FROM [Tableau 1] WHERE [Tableau 1].titre like ' " & Nz(Me.ParamTitre, "*") & "';"
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL SQLSupp
    DoCmd.SetWarnings True
    A+

  11. #11
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Merci HDU71000, j'essayerais ce code des que j'aurais fini de l'adapter a mes besoin, justement en essayant de supprimer le champ [URL], j'ai eu le message d'erreur suivant :

    Nom : message erreur2.png
Affichages : 132
Taille : 122,1 Ko

    J'ai essayé plusieurs cas de figuer "Code" il faut dire que c'est pas aussi mon fort.

    merci.

  12. #12
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Bonjour,

    c'est compliqué de corriger le texte d'une copie d'écran.

    Mais il y a des coquilles (le &) au lieu du & _ à la fin de la première ligne de ton SELECT, une "," avant le AS doc inutile et tu as laissé intervertis les 2 derniers champs)
    Essaies
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    leSQL = "INSERT INTO [Tableau 2] ( id, no, nuf, titre, Sigle_dir, DateArchive ) " & _
    "SELECT [Tableau 1].id, [Tableau 1].[no], [Tableau 1].nuf, [Tableau 1].titre, [Tableau 1].Sigle_dir , Date() AS DateArviche " & _
    "FROM [Tableau 1]" & _
    "WHERE (([Tableau 1].id) Not In (select id from [Tableau 2])) and titre like '" & Nz(Me.ParamTitre, "*") & "';"
    A+

  13. #13
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Ok ca marche super bien merci.

    Pour la suppression j'ai fait ca :

    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
    Private Sub CmdArchiver_Click()
    Dim leSQL As String
     
    leSQL = "INSERT INTO [Tableau 2] ( id, no, nuf, titre, Sigle_dir, DateArchive ) " & _
    "SELECT [Tableau 1].id, [Tableau 1].[no], [Tableau 1].nuf, [Tableau 1].titre, [Tableau 1].Sigle_dir , Date() AS DateArviche " & _
    "FROM [Tableau 1]" & _
    "WHERE (([Tableau 1].id) Not In (select id from [Tableau 2])) and titre like '" & Nz(Me.ParamTitre, "*") & "';"
     
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL leSQL
    DoCmd.SetWarnings True
     
    Dim SQLSupp As String
     
    SQLSupp = "DELETE FROM [Tableau 1] WHERE [Tableau 1].titre like ' " & Nz(Me.ParamTitre, "*") & "';"
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL leSQL
    DoCmd.SetWarnings True
    End Sub
    Bon, ca archive toujours, mais la table source contient toujours les données, mais je pense surtout que j'ai fait n'importe quoi, je ne sais pas pourquoi mais j'ai cette impression.

    Merci.

  14. #14
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 663
    Points : 14 651
    Points
    14 651
    Par défaut
    bonjour,
    surement parce que tu n'exécutes pas le bon sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQLSupp = "DELETE FROM [Tableau 1] WHERE [Tableau 1].titre like ' " & Nz(Me.ParamTitre, "*") & "';"
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL leSQL
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  15. #15
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Re bonjour,

    J'ai corrigé le code que voici :

    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
    Private Sub CmdArchiver_Click()
    Dim leSQL As String
     
    leSQL = "INSERT INTO [Tableau 2] ( id, no, nuf, titre, Sigle_dir, DateArchive ) " & _
    "SELECT [Tableau 1].id, [Tableau 1].[no], [Tableau 1].nuf, [Tableau 1].titre, [Tableau 1].Sigle_dir , Date() AS DateArviche " & _
    "FROM [Tableau 1]" & _
    "WHERE (([Tableau 1].id) Not In (select id from [Tableau 2])) and titre like '" & Nz(Me.ParamTitre, "*") & "';"
     
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL leSQL
    DoCmd.SetWarnings True
     
    Dim SQLSupp As String
     
    SQLSupp = "DELETE FROM [Tableau 1] WHERE [Tableau 1].titre like ' " & Nz(Me.ParamTitre, "*") & "';"
     
    DoCmd.SetWarnings False
    DoCmd.RunSQL SQLSupp
    DoCmd.SetWarnings True
    End Sub
    Ca ne donne vide pas la table source.

    Merci.

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 663
    Points : 14 651
    Points
    14 651
    Par défaut
    Ca ne donne vide pas la table source.
    enlèves temporairement les SetWarnings pour voir les messages, le premier devrait te donner le nombre d'enregistrements à supprimer et si il n'y en a pas, il faut regarder pourquoi dans la clause Where: combien d'enregistrements devraient contenir Me.ParamTitre dans le champ Titre, par exemple
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  17. #17
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Voila j'ai supprimé les deux warning et ca donne ce message:

    Nom : message.png
Affichages : 107
Taille : 82,7 Ko

    Merci.

  18. #18
    Membre éprouvé Avatar de HDU71000
    Homme Profil pro
    Développement Access - En recherche de poste télétravail (invalide)
    Inscrit en
    Août 2016
    Messages
    716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement Access - En recherche de poste télétravail (invalide)

    Informations forums :
    Inscription : Août 2016
    Messages : 716
    Points : 1 023
    Points
    1 023
    Par défaut
    Tu peux mettre

    après la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLSupp = "DELETE FROM [Tableau 1] WHERE [Tableau 1].titre like ' " & Nz(Me.ParamTitre, "*") & "';"
    Et indiquer ce qu'elle retourne ?

    A+

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 663
    Points : 14 651
    Points
    14 651
    Par défaut
    bonjour,
    classique (et je ne l'avais même pas remarqué): il y a un espace en trop entre l'apostrophe et les guillemets qu'il faut enlever
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "DELETE FROM [Tableau 1] WHERE [Tableau 1].titre like ' " & Nz(Me.ParamTitre, "*") & "';"
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  20. #20
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    j'ai le message box d'Access, puis des que je clique sur "OK" j'ai le message que j'ai posté avant.

    voila.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Archivage des Donne de table voliminuex
    Par joujousagem2006 dans le forum Administration
    Réponses: 1
    Dernier message: 09/01/2014, 14h25
  2. Archivage des données
    Par aljessy dans le forum Administration
    Réponses: 4
    Dernier message: 23/07/2012, 12h47
  3. SQL2K] Moteur d'archivage des données
    Par sir_ben dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 02/10/2008, 21h32
  4. Procéder à un archivage des données d'une table
    Par souminet dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/01/2008, 20h28
  5. Archivage des données automatiques
    Par Claire07 dans le forum Access
    Réponses: 10
    Dernier message: 15/06/2006, 15h08

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