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 :

Importer données d'une table d'une base à une autre


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 40
    Points : 16
    Points
    16
    Par défaut Importer données d'une table d'une base à une autre
    Bonjour,

    Je dois importer les données d'un table d'une base de données à l'autre, je veux seulement les données et non la table!

    Mon problème il faudrait que j'efface les données qui sont dans la table CATEGORIE001 et après ajouter seulement les données de la table CATEGORIE.

    Présentement mon code me créer une nouvelle table caterorie0011 car la table catergorie001 est déjà existante dans ma base.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.TransferDatabase acImport, "Microsoft Access", _
    "C:\nouvelle_base.mdb", acTable, "CATEGORIE", "CATEGORIE001", False, True
    Merce de votre aide et je dois vous dire que j'en suis à mes débuts, si vous avez des exemples ça m'aiderait énormément.
    Je pense que je veux trop rendre mes programmes "User Friendly"

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonjour.

    On pourrait le faire en deux lignes en utilisant ADO...

    La technique que tu utilises crée effectivement une nouvelle table CategorieXXX.

    Personnellement, avec DoCmd, je ne vois pas d'autre technique que de passer par une table transfert.

    Voici un code très simple qui permet cela
    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
    Sub ViderTable()
        ' vidanger la table cible
        DoCmd.RunSQL "delete from categorie001"
     
        ' Transférer les données
        DoCmd.TransferDatabase _
            transfertype:=acLink, _
            databasetype:="Microsoft Access", _
            databasename:="C:\nouvelle_base.mdb", _
            objecttype:=acTable, Source:="categorie", _
            destination:="transfert"
     
        ' Ajout des données dans la table
        DoCmd.RunSQL "insert into categorie001 select * from transfert"
     
        ' Suppression de la table de transfert
        DoCmd.DeleteObject objecttype:=acTable, objectname:="Transfert"
    End Sub
    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    Merci ça fonctionne très bien.
    Pour le ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    databasename:="C:\nouvelle_base.mdb", _
    J'aimerais mettre le chemin par défaut à la place de c:\..... comment je dois le faire?
    Je pense que je veux trop rendre mes programmes "User Friendly"

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Je ne sais pas ce que tu entends par "chemin par défaut"

    Si c'est le chemin du dossier dans lequel le fichier actif se trouve, c'est
    qui renvoie le chemin du dossier de la base active sans le \ final
    Le code devient donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    databasename:=currentproject.path & "\nouvelle_base.mdb"
    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2003
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    J'ai trouvé, j'avais oublié \

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentProject.Path & "\" & NomBD
    Je pense que je veux trop rendre mes programmes "User Friendly"

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/04/2010, 12h06
  2. [Modèle Relationnel] Faire une table par type ou une table des types ?
    Par jax54000 dans le forum Schéma
    Réponses: 12
    Dernier message: 18/11/2009, 11h43
  3. [MySQL] Créer une table actuelle à partir d'une table historique
    Par cleminute dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/10/2009, 14h35
  4. recupérer les info d'une table X pour alimenter une table Y
    Par lemerite dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/09/2008, 11h31
  5. Réponses: 1
    Dernier message: 12/04/2007, 17h08

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