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

Bases de données Delphi Discussion :

EXPORT table access


Sujet :

Bases de données Delphi

  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut EXPORT table access
    Re ; pour exporter les données d'une table access j'ai trouvé ce code mais j'ai pas compris a quoi sert le edit1.text ?
    Excel 8.0??????
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.Button1Click(Sender: TObject);
    var sCopy : string;
    begin
      sCopy := 'SELECT * INTO ["Excel 8.0;Database=' +
                Edit1.Text + '"].[SheetAuthors] FROM malades';
     
      AdoQuery1.SQL.Text:=sCopy;
      AdoQuery1.ExecSQL;
     
    end;

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 691
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 691
    Points : 13 121
    Points
    13 121
    Par défaut
    Database=, ça t'inspire quoi sous Excel ?

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Bonjour ; database c'est la en français Bdd . j'ai repris l'exemple mais il me généré une erreur que le fichier existe déjà et aucune trace de l'exportation alors j'ai cherché mais j'ai rien trouvé.
    le site http://delphi.about.com/od/database/l/aa090903f.htm
    je suis aller sur une autre solution qui est la suivante :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    procedure Tfexport.SpeedButton1Click(Sender: TObject);
     var Year,Month,Day,an,mois,year1,year2:Word;
    vMSExcel, vXLWorkbooks, vXLWorkbook, vWorksheet : variant;
      i,row,j:integer;
     
         bookmark:Tbookmarkstr;
        table:tdataset;
     
     
    begin
    dm1.Table1.Open;
    if rbexpliste.Checked then
       begin
       expliste.Close; /// requête d'extraction des données
       expliste.Open;
        //créer et rendre visible excel
       table:=expliste;
       ExcelApplication1.Visible[0]:=true;
       excelapplication1.workbooks.add(NULL,0);
       //remplir la première ligne avec les noms des champs
       vMSExcel:=ExcelApplication1.ActiveCell;
     
       for i:=0 to table.Fields.Count-1 do
       begin
       vMSExcel.Value:=table.Fields[i].DisplayLabel;
       vMSExcel:=vMSExcel.Next;
       end;
       vMSExcel.AutoFormat(8,NULL,NULL,NULL,NULL,NULL,NULL);// la j'ai pas compris cette ligne?
     
       //remplir les lignes suivantes avec les enregts.
       table.DisableControls;
       try
        bookmark:=table.Bookmark;
        try
         table.First;
         row:=2;//table.RecordCount+1;
         while not table.Eof do
         begin
           vMSExcel:=ExcelApplication1.Range['A'+inttostr(Row), 'A'+inttostr(Row)];
           for i:=0 to table.Fields.Count-1 do
           begin
             vMSExcel.Value:=table.Fields[i].AsString;
            vMSExcel:=vMSExcel.Next;
           end;
           table.Next;
           Inc(row);
         end;
         finally
          table.Bookmark:=bookmark;
         end;
         finally
          table.EnableControls;
         end;
             exit
        end;
    le code marche est le résultat est bon sauf:
    après l'ouverture d'excel on voit le défilement des enregistrement un par un ( reste a deviné dans le cas ou l'exportation contient un nombre +- ( au dela 300 enregistrement )!!!
    lors l'ouverture d'excel et au moment d'écriture des données sur excel , si je clique dans une cellule l'exportation s'arrête et l'application bug !!!!
    je me demande si on peut exporté les données sans l'ouverture d'excel ? j'ai essayé en décalant ce morceau de code al fin de la procedure mais sa na pas marché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...........
     ExcelApplication1.Visible[0]:=true;
       excelapplication1.workbooks.add(NULL,0);
    ..............................................
    une idée

  4. #4
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Re ; en testant ce code d'exportation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm1.Button1Click(Sender: TObject);
    var sCopy : string;
    begin
      sCopy := 'SELECT * INTO ["Excel 8.0;Database=' +
                Edit1.Text + '"].[SheetAuthors] FROM malades';
     // c'est un champ destiné a donné un non au fichier excel resultant de l'exportation 
      AdoQuery1.SQL.Text:=sCopy; // écriture de la requête dans le adoquery
      AdoQuery1.ExecSQL; // exécution de la requête 
     
    end;
    c'est meilleur que le deuxième code mais il reste a amélioré du coté des mise en forme et le chemin d'exportation .
    je suis preneur de cette solution en attendant son amélioration , c'est quelqu'un peut nous aidé sur cette étape merci

  5. #5
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    voila pour le chemin d'exportation j'ai utilisé ce code apparemment sa marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure TForm1.Button1Click(Sender: TObject);
    var sCopy : string;
     
    begin
    sCopy := 'SELECT * INTO ["Excel 8.0;Database=' +
                'essai1' + '"].[Liste Malades] FROM malades';
     
      AdoQuery1.SQL.Text:=sCopy;
      AdoQuery1.ExecSQL;
     
    if savedialog1.Execute then
    adoquery1.saveFromFile(savedialog1.FileName);

  6. #6
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Pour répondre à ta question 1/ normalement c'est le nom de ton fichier Excel. Sinon j'avais fait un truc pour exporter un table vers Excel qui doit être là :
    http://sourceforge.net/projects/axbase/

  7. #7
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Bonjours ; @ Phil j'ai installer axbase mais j'ai pas trouver option d'exportation , il fallait que je rentre le répertoire programfile... pour lancer l'application... peut étre que j'ai pas su l'activé en plus il faut installer la JVCL.....!!!!!!
    voila j'ai un peut amélioré le code :
    crée un chemin pour sauvegarder le fichier ;
    utilisé une requéte paramétré ;

    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
    procedure Tfexport.SpeedButton1Click(Sender: TObject);
     var Year,Month,Day,an,mois,year1,year2:Word;
      y,m:integer;
     
      sCopy : string;
     
    begin
    ......................................................
    if (rblistp.Checked) and (savedialog1.Execute )then //rblistp c'est un radiobutton
    begin
    sCopy := 'select nreg as [N° ],datedec as [Date Déclaration],Nom,Prenom,Age,Sexe,transfert as [Transfert]'
    +',evol as [Evolution] INTO ["Excel 8.0;Database=' + savedialog1.FileName + '"].[Liste sujet] FROM tsujets where datedec>=:D and datedec<=:F order by datedec , nreg';
     
      expliste.SQL.Text:=sCopy;
      //ParamCheck := True;  sa ne fonctionne pas je ne c'est pas pourquoi ??????
      expliste.Parameters.ParamByName('D').Value :=datetostr(dt1.Date);// date début
      expliste.Parameters.ParamByName('f').Value :=datetostr(dt2.Date); // date fin
     
      expliste.ExecSQL;
      expliste.SQL.Text:=''; /// vider le adoquery
      expliste.Close;
      fexport.Close;  // fermer la form
    exit;
    end;
    voila ca répond a mes besoins , sachant que le code d'origine est celui du lien cité ci
    le code marche impeccablement " transfert des données sans ouvrir le fichier excel ni voire le défilement un grand barvo pour le propriétaire.
    je suis ouvert a toute autre proposition ou une amélioration du code

Discussions similaires

  1. Export table access vers csv
    Par sphinx18 dans le forum IHM
    Réponses: 18
    Dernier message: 05/12/2012, 15h05
  2. Export table Access vers plusieurs fichiers Excel
    Par entrepreneur dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/01/2008, 09h18
  3. [VBA] Export table access vers fichier.txt
    Par fabiolous dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/04/2007, 17h55
  4. Problème exportation table Access dans Excel
    Par Thiazung dans le forum Access
    Réponses: 5
    Dernier message: 02/10/2006, 17h12
  5. Export table Access vers dBase III
    Par djo.alpha dans le forum Access
    Réponses: 2
    Dernier message: 27/04/2006, 13h53

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