Save et ADO

cs_MrHyDe Messages postés 13 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 26 septembre 2007 - 18 févr. 2003 à 17:55
cs_MrHyDe Messages postés 13 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 26 septembre 2007 - 19 févr. 2003 à 17:56
Bonjour a tous,
je veux enregistrer le contenu d'un adodb.recordset dans un fichier texte pour ensuite l'importer sous excel. J'utilise la méthode getstring ou je définis le séparateur et le caractere de fin d'enregistrement, mais probleme, quand c'est trop gros : message d'erreur, memoire insuffisante pour effectuer cette opération.
J'ai essayé la méthode save, mais ca me crée un fichier crypté.
Si qqun a une solution, il est le bienvenu
Merci

MrHyDe

3 réponses

cs_latex Messages postés 6 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 27 février 2003
18 févr. 2003 à 19:40
Pourquoi ne fait tu pas un lien direct depuis ton code VB vers Excel en te créant un objet Excel ?

Dim xls As Object
Dim Wb As Excel.Workbook
Dim MySheet As Excel.Worksheet

'Crée ton objet Excel
Set xls = CreateObject("Excel.Application")
xls.Visible = True
Set Wb = xls.Workbooks.Open("c:\temp\monfichier.xls")
Set MySheet = Wb.Worksheets(1)

'Ecris ou tu veux dans Excel
xls.Range("A1").Value = "J'écrit ou je veux"
xls.cells(2,1).value = "Ca c'est B1 normalement"

'Vide tes objets et ta mémoire
xls.Quit
Set xls = Nothing

'Aimetnems (ca c'est moi)
0
cs_wape Messages postés 262 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 19 décembre 2010 12
18 févr. 2003 à 21:28
On pourrait aussi imaginer d'utiliser la méthode CopyFromRecordset, qui copie directement dans Excel le contenu d'un recordset.

Voici un exemple de sub qui reçoit en paramètre un recordset et copie son contenu dans un classeur Excel :

Sub Export_To_Excel(Rs As ADODB.Recordset)

Dim oXlApp As Excel.Application
Dim oXlWbk As Excel.Workbook
Dim oXlWsh As Excel.Worksheet

Set oXlApp = CreateObject("Excel.Application")
oXlApp.Visible = True

'Créer un nouveau classeur
Set oXlWbk = oXlApp.Workbooks.Add
'Activer la 1ère feuille
Set oXlWsh = oXlWbk.Worksheets(1)

'Copier le recordset, en commençant dans le coin supérieur gauche de la plage spécifiée
oXlWsh.Range("A1").CopyFromRecordset Rs

'Sauvegarder le classeur
oXlWbk.SaveAs ("C:\MonClasseur.xls")

'Quitter Excel
oXlApp.Quit
Set oXlApp = Nothing

MsgBox "Le traitement est terminé.", vbInformation

End Sub

Slts

wape
0
cs_MrHyDe Messages postés 13 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 26 septembre 2007
19 févr. 2003 à 17:56
C'est super, ca marche, merci a tous les deux
MrHyDe
0
Rejoignez-nous