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 :

Créer une table à partir de la structure d'une table existante


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut Créer une table à partir de la structure d'une table existante
    Bonjour,

    Est il possible en VBA, de manière simple, de copier la structure (uniquement) d'une table A dans une table B?
    Ma problèmatique est de créer une table B ayant la même structure que la table A.

    D'avance merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 629
    Points : 34 335
    Points
    34 335
    Par défaut
    salut,
    une idée parmi d'autres :
    - requête SELECT * INTO
    - requête DELETE *
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour

    Pourquoi pas une simple importation ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 278
    Points : 132
    Points
    132
    Par défaut
    Merci pour les réponses!

    Citation Envoyé par jpcheck Voir le message
    salut,
    une idée parmi d'autres :
    - requête SELECT * INTO
    - requête DELETE *
    Oui, j'ai fait ça, ça marche mais c'est pas très classe!

    Citation Envoyé par Tofalu Voir le message
    Bonjour

    Pourquoi pas une simple importation ?
    Ah là, je ne vois pas!

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub copie()
    DoCmd.TransferDatabase acImport, _
                            "Microsoft Access", _
                            CurrentDb.Name, _
                            acTable, "AnalysePages", "AnalysePages2", True
    End Sub

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    j'aurais besoin de cette même demande,
    j'ai essayé ce code mais il me fait une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub copie()
    DoCmd.TransferDatabase acImport, _
                            "Microsoft Access", _
                            CurrentDb.Name, _
                            acTable, "AnalysePages", "AnalysePages2", True
    End Sub
    "Microsoft Access", est la table à copier
    "AnalysePages", "AnalysePages2" est ???
    Merci pour votre réponse

  7. #7
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * into NewTable from MaTable where 1 = 2

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Bonjour Pc75,

    Merci pour le code,
    Mais je dois faire un critère de trie.
    Je lance le code suivant, c'est bon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Format(table.id,"") AS id, Format(table.nom,"") AS nom, Format(table.nom_naissance,"") AS nom_naissance, Format(table.prenom,"") AS prenom, Format(table.date_naissance,"dd/MM/YYYY") AS date_naissance, Format(Table.sexe,"") AS sexe, Format(Table.date_ad,"dd/MM/YYYY") AS date_ad, Format(Table.heure_ad,"hh:mm") AS heure_ad, Format(Table.gl_u,"00000000000") AS gl_u, Format(Table.code_postal,"00000") AS code_postal, Format(Table.ville,"") AS ville, Format(Table.mois_adm,"yyyy-mm") AS mois_adm
    FROM Table
    WHERE mois_adm='1995-02';
    mais si je lance le code suivant, cela ne marche pas:J'ai un message d'erreur, argument non valide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO NVL_TABLE
    SELECT Format(table.id,"") AS id, Format(table.nom,"") AS nom, Format(table.nom_naissance,"") AS nom_naissance, Format(table.prenom,"") AS prenom, Format(table.date_naissance,"dd/MM/YYYY") AS date_naissance, Format(Table.sexe,"") AS sexe, Format(Table.date_ad,"dd/MM/YYYY") AS date_ad, Format(Table.heure_ad,"hh:mm") AS heure_ad, Format(Table.gl_u,"00000000000") AS gl_u, Format(Table.code_postal,"00000") AS code_postal, Format(Table.ville,"") AS ville, Format(Table.mois_adm,"yyyy-mm") AS mois_admFROM Venues_patient
    WHERE mois_adm='1995-02';
    Merci pour vos réponses

  9. #9
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Et elle est où la clause FROM dans ta deuxième requête ?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Désolé, j'ai fait un mauvais copier/coller. mais le FROM est bien à la fin diu code, j'ai oublié un espace

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    En faite, pour être plus claire, c'est comment copier le résultat du code suivant dans access.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Format(table.id,"") AS id, Format(table.nom,"") AS nom, Format(table.nom_naissance,"") AS nom_naissance, Format(table.prenom,"") AS prenom, Format(table.date_naissance,"dd/MM/YYYY") AS date_naissance, Format(Table.sexe,"") AS sexe, Format(Table.date_ad,"dd/MM/YYYY") AS date_ad, Format(Table.heure_ad,"hh:mm") AS heure_ad, Format(Table.gl_u,"00000000000") AS gl_u, Format(Table.code_postal,"00000") AS code_postal, Format(Table.ville,"") AS ville, Format(Table.mois_adm,"yyyy-mm") AS mois_adm
    FROM Table
    WHERE mois_adm='1995-02';

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2008, 16h47
  2. Charger une Textbox à partir d'un combobox lié à une table
    Par fomblardo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/03/2008, 13h24
  3. Réponses: 8
    Dernier message: 24/01/2008, 22h36
  4. [PEAR] Initialisation d'une variable par rapport à la structure d'une table
    Par Katachana dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 22/01/2008, 11h12
  5. Réponses: 2
    Dernier message: 05/10/2007, 23h49

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