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 :

Renommer une table suite à une requête création de table [AC-2016]


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    Juin 2018
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : Juin 2018
    Messages : 84
    Points : 50
    Points
    50
    Par défaut Renommer une table suite à une requête création de table
    Bonjour à tous,

    Je voulais savoir s'il était possible de renommer une table suite à une requête de création de table exécutée par une macro.

    A l'heure actuelle, j'ai créé ma requête création de table en donnant un nom à cette table "tblBackUp", puis j'ai créé une macro intégrée qui me permet d'exécuter cette requête.

    Ce que j'aimerais, c'est que dès que j'exécute une nouvelle fois cette macro, que la nouvelle table porte un nom un peu différent, style "tblBackUp2".

    L'idée en fait serait de pouvoir faire des backup d'une table tous les trimestres et en gardant tout le temps les tables backup précédentes pour avoir quelque chose comme ça:

    tblBackUp2018
    tblBackUp2019
    tblBackUp2020 et ainsi de suite.

    Est-ce que cela peut se faire directement en SQL après le mot clé INTO?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT tblOut.pkOutID, tblOut.fkOutEmployeesID, tblOut.fkOutArtcilesID, tblOut.fkOutCustomersID, tblOut.chkOutCash, tblOut.chkOutCard, tblOut.intOutNumberUnits, tblOut.datOutDate INTO tblBackUp FROM tblOut WHERE (((Year([tblOut]![datOutDate]))=[Choisir l'année de l'export]));
    Faut-il passer par le vba?

    Merci d'avance à ceux qui pourront m'aider sur le sujet.

    Schoum

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    A priori faire des backups de table en Access c'est une mauvaise idee.

    Ce qu'on fait d'habitude est :
    1. Filtrer les donnes sur la date pour n'afficher que celles qui nous interessent.
      L'avantage est que les donnees restent facilement disponibles si on en a besoin.
    2. Ou copier les donnees en function de la date dans une table "Archive".
      Puis on supprime les donnees archivees de la table.
    3. Ou copier la base sous un autre nom. Ex : MaSuperBD, est copiee en MaSuperBD_2017.
      Puis on purge la BD courante de ses donnees.


    Access, contrairement a Excel, marche assez mal avec des noms d'objets variables et interroger tes donnees devient vite un casse tete.

    Ceci dit pour repondre a ta question avec une macro je ne sais pas mais avec VBA voici un exemple de code qui fait cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim db as dao.database: set db=currentdb
    db.tabledefs("NomTaTable").name="NomTaNouvelleTable"
    db.close: set db=nothing
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre du Club
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    Juin 2018
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : Juin 2018
    Messages : 84
    Points : 50
    Points
    50
    Par défaut
    Bonjour marot_r;

    Merci pour ce retour.

    Je vais aller voir ce que sont les tables archives, j'imagine que c'est quelque chose de particulier dans access.

    Je ne connais pas encore super bien access, pourquoi tu penses que ce n'est pas une bonne idée de faire des table backup?
    Ce n'est pas approprié dans access? Il y a d'autres fonctionnalités dans access qui sont plus intéressantes?

    Merci également pour ce bout de code, comme entrainement, je vais essayer de l'adapter à mon bout de code pour si j'y arrive.

    Je te souhaite une bonne journée.

    Schoum

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Non la table "Archive" est juste une copie de la table "Vivante" ou on stocke les donnees qu'on ne veut plus.

    pourquoi tu penses que ce n'est pas une bonne idée de faire des table backup?
    Parce qu'il faut que tu fasses une requete par table et que si tu veux presenter tes annees archivees en une seule fois c'est VRAIMENT penible.

    Access marche en "une dimension" avec des listes, des listes de listes, des listes de listes de listes ... contrairement a Excel qui marche "en 2 dimensions" (ou tableau).

    Si tu as en Excel :

    Identifiant | Valeur Annee01 | Valeur Annee02 | Valeur Annee03

    tu vas avoir en Access :

    Idenifiant | Annee01 | Valeur Annee 01
    Idenifiant | Annee02 | Valeur Annee 02
    Idenifiant | Annee03 | Valeur Annee 03

    Exploiter la 1ere structure en Access est possible mais un peu contre sa "nature".

    En plus les formulaires d'Access sont "figes" et ne s'adapte pas automatiquement a l'ajout de champs (colonnes) dans leur source donc si tu as besoin d'une nouvelle colonne il faut modifier ton formulaire.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre du Club
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    Juin 2018
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : Juin 2018
    Messages : 84
    Points : 50
    Points
    50
    Par défaut
    Bonjour marot_r,

    Merci beaucoup pour ces explications qui sont claires et m'aide à mieux comprendre les tenants et aboutissants d'access.

    Je te souhaite une excellente soirée.

    Schoum

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

Discussions similaires

  1. [Toutes versions] Fusionner deux tables d'une DB en une seule dans une autre DB
    Par Ecxtazy dans le forum Access
    Réponses: 12
    Dernier message: 01/06/2017, 11h35
  2. Réponses: 1
    Dernier message: 07/02/2013, 15h10
  3. [AC-2003] Lier les tables d'une Base1 dans une Base3 via une Base2
    Par ted the Ors dans le forum VBA Access
    Réponses: 0
    Dernier message: 30/12/2009, 11h58
  4. Réponses: 4
    Dernier message: 30/09/2009, 14h37
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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