HEEELP !! Exportation du contenu d'un DataGrid

Spard - 17 juil. 2001 à 10:05
 Cosak - 17 juil. 2001 à 12:41
Bonjour a tous.

Euh.. voila mon probleme
J'ai un resultat de requete SQL que je recupere dans un Datagrid ( 3 colonnes ). Je souhaite utiliser les éléments renvoyés par la requete dans un tableau excel que je "fabrique" depuis un .csv (valeurs séparées par des ; ).
Comment faire pour exporter le contenu de mon datagrid en .csv ( ou en .txt ) ?

Ou alors existe t'il un methode pour que le résulats de ma requete s'ecrive directement dans un .txt ou je n'aurais plus qu'a caser les ; ? Cela signifierais probablement ne pas passer par le controle ADO, et je ne sais pas comment faire pour inclure directement ma requete SQL ds le code...
..enfin, je nage un peu ( beaucoup), quoi! Quelqu'un pourrait-il m'éclairer un peu, cela m'aiderais vraiment beaucoup
Merci
Spard

1 réponse

Voilà déjà un début de réponse... Il reste deux petits trucs à corriger à la fin...

Pour exporter un fichier en .CSV c'est un peu la même chose que pour exporter en .XLS, y'a juste un ou deux arguments qui changent...

En admettant que tes données sont dans un Recordset qui s'appelle, par hasard, RecSet, on peut utiliser le code suivant :

' On récupère le nb d'enregistrements et de champs du RecSet
RecSet.MoveLast
RecSet.MoveFirst
NbLignes = RecSet.RecordCount
NbCols = RecSet.Fields.Count

' On ouvre un objet Excel et on y recopie le RecSet
Set ObjExcel = New Excel.Application
With ObjExcel
    Set ObjWorkbook = .Workbooks.Add
    Set ObjSheet = ObjWorkbook.Worksheets(1)
    With ObjSheet
        .Range(.Cells(1, 1), .Cells(NbLignes,NbCols)).CopyFromRecordset RecSet
    End With
End With

' On sauvegarde le fichier CSV ainsi obtenu
Chemin = "C:\Mon\Repertoire"
Nom = "NomDuFichier.csv"
ChDir Chemin
ActiveWorkbook.SaveAs FileName:=Chemin & Nom, FileFormat:=xlCSV, _
    Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

' On quitte proprement Excel
ActiveWorkbook.Close
ObjExcel.Quit


Les 2 problèmes qui se posent :

1) On a le droit à une zolie MsgBox qui demande si on veut enregistrer les modifications apportées au fichier .CSV

2) Plus grave, le process EXCEL reste actif en tâche de fond (donc peut-être pb pour la modification/suppression des fichiers...)

Les pistes de solution :

1) -> P'têt qu'un DoCmd.SetWarnings False suffirait... J'ai pas essayé.

2) -> qq a une idée ???

Cosak'
0
Rejoignez-nous