RatDesChamps
Messages postés4Date d'inscriptionmercredi 28 août 2002StatutMembreDernière intervention12 janvier 2005
-
29 août 2002 à 11:06
bafozorus
Messages postés1Date d'inscriptionlundi 7 avril 2003StatutMembreDernière intervention 9 avril 2003
-
9 avril 2003 à 09:13
Je souhaiterai faire l'export du resultat de ma requete dans un fichier excel, mais je ne sais pas comment faire.
Merci d'avance pour votre aide.
cs_imer
Messages postés59Date d'inscriptionvendredi 26 juillet 2002StatutMembreDernière intervention29 janvier 2004 29 août 2002 à 13:05
'Faire Projets/Références et Cocher Microsoft Excel X.X Object Library
'Déclarer un objet excel
Dim XlApp as Excel.Application
Dim i_Ligne as Long
'Instancier
Set XlApp as New Excel.Application
XlApp.Visible=True
'Ouvrir le fichier xls
XlApp.WorkBooks.Open <Chemin Fichier>
'ou bien en créer un nouveau
XlApp.WorkBooks.Add
'Lire la requète via un recordset
i_Ligne=1
Do Until <Recordset>.EOF = true
'Ecrire la ligne du recordset dans le fichier xls
XlApp.WorkBooks(1).WorkSheets(1).Cells(i_Ligne,1) = <Recordset>.Fields(1)
XlApp.WorkBooks(1).WorkSheets(1).Cells(i_Ligne,2) = <Recordset>.Fields(2)
XlApp.WorkBooks(1).WorkSheets(1).Cells(i_Ligne,3) = <Recordset>.Fields(3)
...
i_Ligne=i_Ligne+1
Loop
'Enregistrer le fichier xls
XlApp.WorkBooks(1).Save
'ou bien si nouveau fichier
XlApp.WorkBooks(1).SaveAs <Chemi Fichier>
If XlApp.Visible = False
XlApp.Quit
Set XlApp = Nothing
End If
RatDesChamps
Messages postés4Date d'inscriptionmercredi 28 août 2002StatutMembreDernière intervention12 janvier 2005 29 août 2002 à 14:20
2 petites choses :
La première la commande "Set XlApp As New Excel.Applicatione ne fonctionne pas, il faut remplacezr "As" par "=".
Et seconde chose plus importante ca ne fonctionne pas, il n'y a pas de message d'erreur, mais ma feuille excel ne se remplit pas.
cs_imer
Messages postés59Date d'inscriptionvendredi 26 juillet 2002StatutMembreDernière intervention29 janvier 2004 29 août 2002 à 14:57
Autre erreur : faire un MoveNext sur le Recordset avant l'instruction Loop ...
Si rien ne sécrit dans la feuille excel c'est qu'il n'y a rien dans les champs du recordset ou que celui ci est vide.
Envoies moi le code
bafozorus
Messages postés1Date d'inscriptionlundi 7 avril 2003StatutMembreDernière intervention 9 avril 2003 9 avril 2003 à 09:13
Salut les gars... oui il faut bien un <RECORDSET>.movenext avnt le Loop sinon il se contante de recopier la premiere lignes indéfiniment!!!!!
de plus il ne fo pas que le nombre de champs specifie dans le code vb soit supérieur o nbre de champs extrait par la requete.... de plus il fo que le premier champ soit 0 sinon il oubli la premiere colonne!!!!
Voila mon code... il permet de se connecter à une base oracle...excécuter une requete SQL et de copier le resultat dans une feuille EXcel :
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 07/04/2003 par BTHEVIN
Dim dbs As Database
Dim enreg As Variant
Dim cmd As Variant
Dim strAttributs As String
Dim nomBase, nomServeur, nomUt, mdp As String
Dim wrkJet As Workspace
Dim Rec As Recordset
Dim dbsLoop As Database
Dim prpLoop As Property
Dim dbsRec As Recordset
Dim XlApp As Excel.Application
Dim i_Ligne As Long
nomBase = "Goldorak" 'Nom de la base (Data source name de la source ODBC)
nomServeur = "KEN" 'Nom du serveur (Service name de la source ODBC)
nomUt = "APGXXX" 'Nom d'utilisateur de connexion à la base
mdp = "x" 'Mot de passe de l'utilisateur pour la connexion