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

C++Builder Discussion :

[EXCEL][ADO]Copier une table vers une autre


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Par défaut [EXCEL][ADO]Copier une table vers une autre
    Bonjour,

    Je cherche à copier le contenu d'un table dans une autre, voisi une partie de mon 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
    ADOQuery1->Close();
    ADOConnection1->Connected = false;
    ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + OpenDialog1->FileName + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
    ADOConnection1->Connected = true;
    ADOTable1->Active = false;
    ADOConnection2->Connected = false;
    ADOConnection2->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=donnee.xls;Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
    ADOConnection2->Connected = true;
    ADOQuery1->SQL->Clear();
    ADOQuery1->SQL->Add("SELECT * FROM [Feuil1$]");
    ADOQuery1->Open();
    ADOTable1->TableName = "[Feuil1$]";
    ADOTable1->Active = true;
    ADOTable1->Last();
    ADOQuery1->First();
    à cette etape j'ai dans ma forme 2 DBGrid ou je peut voire que mes table son bien ouverte et positioner au bon endroit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while (!ADOQuery1->Eof)
       {
      ADOTable1->Insert();
      ADOTable1->Fields->Fields[0]->Value=ADOQuery1->Fields->Fields[0]->Value;
      ADOTable1->Next();
    ADOQuery1->Next();
       }
    Sur le ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ADOTable1->Fields->Fields[0]->Value=ADOQuery1->Fields->Fields[0]->Value
    Builder affiche comme erreur
    Le projet meteo.exe a declanché la classe d'exception EOleException avec le message 'l'opération doit utiliser une requête qui peut être mise à jour'
    puis builder affiche comme erreur
    Le projet meteo.exe a declanché la classe d'exception EDatabaseError avec le message 'l'opération doit utiliser une requête qui peut être mise à jour'
    une idée svp??

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Par défaut
    Depuis la semaine passée, j'ai tenter plusieur chose, mais je n'ai toujours pas trouvée de solution.
    Esque qu'elle qu'un conais une solution, oubien une maniére de conturnée le probléme.
    Je cherche juste à copier une pardie des donnée trouvée dans un fichier excel dans un autre.

  3. #3
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    si je pige bien, tu ouvres 2 fichiers Excel...et tu veux passer les données de l'un dans l'autre.
    il serait pas en lecture seule celui de destination?

    tu dis que tu as essayé des choses...cad?

  4. #4
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Si les requetes SQL fonctionne avec Excel, tu peux tenter le coup de la requete SELECT imbriquée dans une requete INSERT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO matable (champ1,champ2) SELECT chp1,chp2 FROM matbl

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Par défaut
    Citation Envoyé par say Voir le message
    si je pige bien, tu ouvres 2 fichiers Excel...et tu veux passer les données de l'un dans l'autre.
    oui
    Citation Envoyé par say Voir le message
    il serait pas en lecture seule celui de destination?
    non
    Citation Envoyé par say Voir le message
    tu dis que tu as essayé des choses...cad?
    Tous et n'inporte quoid : renplacer les adotable par des adoquery et inversément, travailer sur un nouveau fichier de destination, tester plusieur paramétre de l'adoconection,... je réusi à faire pire, mais pas mieux.

    Citation Envoyé par bakaneko Voir le message
    Si les requetes SQL fonctionne avec Excel, tu peux tenter le coup de la requete SELECT imbriquée dans une requete INSERT.
    le probléme, s'est que pour le moment, pour tester, je me contente de copier d'un fichier à l'autre. Mais une foit que sa marche, je doit transformé certaine donnée en cour de route.

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut fpascal
    Je ne pense pas que tu peut acceder directement avec une table ADO, je te met deux liens sur le site sur le sujet en Excel bien sur, je pense qu'il va y avoir de la recherche a faire

  7. #7
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 128
    Par défaut
    Citation Envoyé par blondelle Voir le message
    Salut fpascal
    Je ne pense pas que tu peut acceder directement avec une table ADO
    Merci pour les liens, mais je s'ai acceder au donnée, je peut les lire sans probléme (je le fait à plusieur moment dans mon programme). Et j'ai dejat fait un programme qui copie des donnée d'une table à l'autre sans probléme, la seul différance etait que s'etait des fichier access à la base.

    La seul chose que je n'arrive pas à faire, s'est écrire.
    Si je retire la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ADOTable1->Fields->Fields[0]->Value=ADOQuery1->Fields->Fields[0]->Value;
    Le programme tourne sens erreur.
    Il doit me manquer une astuce, une "bétise" pour pouvoire ecrire dans le fichier.

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    J'ai peut etre trouve quelque chose d'interressant en faisant des recherches, je n'ai pas essaye, je n'ai pas beaucoup de temps
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // clone ADOQuery
      ADOQuery2->Clone(ADOQuery1);
    // ecrit   
      ADOQuery2->UpdateBatch(arAll);
    c'est bien sur une base de depart, tiens nous au courant

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. [VB.Net] Comment copier une DataRow d'une table vers une autre ?
    Par YLF dans le forum Accès aux données
    Réponses: 7
    Dernier message: 05/09/2012, 23h23
  3. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  4. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  5. Copier un enregistrement d'une table vers une autre
    Par le lynx dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/01/2006, 09h56

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