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

Visual Studio Discussion :

Copie bdd Access vers une autre bdd access


Sujet :

Visual Studio

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Points : 8
    Points
    8
    Par défaut Copie bdd Access vers une autre bdd access
    Bonsoir à tous.

    Cela fait un moment que je cherche en vain comment copier une base de données Access vers une autre base Access. Existe-t-il un code SQL qui me permettrait de faire ça ?
    Je suis en train de faire une application en VB avec VS2005...
    Je souhaiterais aussi pouvoir renomer la base copiée après un clic sur un bouton : une fenêtre de saisie s'ouvrirait, et en cliquant sur "ok" la base se copierait automatiquement avec le nouveau nom saisi.

    Voilà si vous pouvez m'aider ... Merci d'avance !

    Bisous.

    Lucie

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Plutôt que de renommer la base après la copie, il serait plus judicieux de changer le nom avant de la créer.

    Je t'avoue que je ne travaille pas avec Access, mais tu dois sûrement pouvoir récupérer les noms et les structure des tables provenant de la base que tu veux copier, et à partir de ça tu pourras créer des requêtes SQL te permettant de les recréer dans une autre base et ensuite d'importer les données.

    Tu peux aussi passer par des DataSet et des DataTable. Je pense que ce lien peut t'intéresser, au moins pour avoir une idée de code :
    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
    //connexion
    connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Mode=ReadWrite";
    oConn = new OleDbConnection(this.connStr);
    oConn.Open();
    //test si table existe
    DataTable dt;
    string table = "2004";
    dt = oConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,new Object[] {null,null,null,"TABLE"});
    bool bTableExist = true;
    foreach(DataRow row in dt.Rows)
    {
    if (row.ItemArray[2].ToString() != table)
    {
    bTableExist = false;
    }
    }
    bool ToReturn = true;
    if (!bTableExist)
    {
    try
    {
    DataTable Source = new DataTable("ref");
    DataTable cloneTable = new DataTable(table);
    cloneTable = Source.Clone();
     
    }
    catch
    {
    ToReturn = false;
    }
    }
    return ToReturn;
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Oui tu as raison, il faut mieux renommer la base avant de la copier c'est ce que je voulais faire mais j'ai oublié de le préciser, il était tard !
    Donc, je vais essayer de m'expliquer plus en détails afin que vous compreniez parfaitement
    Je souhaite créer une application pour gérer les carnets d'adresses. Au début il y a la base vide que je vais appeler mabase.mdb
    Sur la fenêtre d'accueil du logiciel, il y a un bouton "Nouveau carnet d'adresse".Une zone de saisie apparait, on inscrit le nom du carnet à creer puis on fait "ok". La base est alors copiée.

    C'est pratique de devoir expliquer en détails... Je crois que j'ai trouver un moyen d'arriver à mes fins !
    Je reviendrais pour dire si j'y arrive ou pas.
    Merci Laedit, c'est toi qui m'a mise sur la voie !!!!

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    En l'occurrence, il n'y a que la structure de la base qui t'intéresse, et non les données.

    Dans ce cas, il suffit de faire des méthodes de création de base et des tables de ton carnet d'adresse dans ton application, c'est la solution la plus simple. Et la plus logique

    Et ça te permet aussi de pallier le cas où l'utilisateur aurait supprimé par mégarde la seule base de carnet d'adresse : tu fais une vérification de la présence de la base au lancement de l'application, et si elle n'existe pas, tu la créer.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Je me permets de relancer cette demande car la mienne y ressemble beaucoup, sauf que je souhaite copier aussi les données. En détail :

    Dans mon application VB .Net, je manipule une base Access "B1". Dans cette base B1, je souhaite copier une table (structure & données) présente dans une autre base "B2" qui sera désignée par l'utilisateur (l'utilisateur donnera le path de B2).

    Une solution serait d'employer la fonction "Importer" qui existe dans access, mais je ne sais pas comment m'y prendre pour utiliser une fonction access via VB .Net (est-ce déjà possible ?).

    Une idée ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 36
    Points : 28
    Points
    28
    Par défaut
    Bonjour à tous,

    Je me permets de relancer ma question


Discussions similaires

  1. Transfert de donnée Access vers une autre base ACCESS
    Par DocCoinCoin dans le forum VBA Access
    Réponses: 0
    Dernier message: 05/03/2008, 09h31
  2. Réponses: 3
    Dernier message: 06/10/2007, 12h01
  3. Import des tables d'une BDD access vers une autre table
    Par Darki dans le forum VBA Access
    Réponses: 4
    Dernier message: 03/07/2007, 15h06
  4. synchronisation de Access et une autre bdd
    Par faamugol dans le forum Access
    Réponses: 3
    Dernier message: 12/06/2006, 10h08

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