basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008
-
12 janv. 2008 à 00:00
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008
-
12 janv. 2008 à 20:07
Bonsoir,
lors de l'export d'une table ACCES à un fichier Ecell, je voulais que les libellés des champs de ma tables soient modifié au niveau du fichier Excell.
Est ce que cela est possible?
Merci d'avance!
Le savoir est la lumière de nous tous, partageons le!
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 12 janv. 2008 à 16:46
Mon explication n'était pas très claire effectivement... et un peu erronée. Ce n'est pas le CopyFromRecordset qui gère les noms de champs, mais bien la requête SQL elle-même.
Sous ADO, je ne sais pas trop, mais ça devrait quand même ressembler à ça (c'est écris sous DAO)
strSQL = "Select NomChampUn As NouveauNom From MaTable"
Set Rs = Db.OpenRecordset(strSQL) 'changer pour connexion ADO
'Écriture des entêtes (les Alias seront considérés)
For I = 0 To Rs.Fields.Count - 1
'Ici, les noms de champs seront ceux de la base
'sauf si tu leur as donné un nom d'Alias avec AS
Sheets("MaFeuille").Range("A1").Offset(0, I) = Rs.Fields(I).Name
Next
Comme on vient de copier les entêtes sur la ligne 1, on va copier les enregistrements à partir de A2
Sheets("MaFeuille").Range("A2").CopyFromRecordset Rs
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008 12 janv. 2008 à 20:07
Merci MPi, tu m'as montré le bon chemin, voici la modif à faire:
il faut changer cette ligne:
req = "SELECT * FROM `" & Combo2.Text & "`"
par
req = "SELECT 1erchamp as [NOUVEAU NOM], 2emechamp as [NOUVEAU CHAMP] {ect} FROM `" & Combo2.Text & "`"
et le tour est joué merci encore une fois!
Le savoir est la lumière de nous tous, partageons le!
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 janv. 2008 à 01:36
Modif catégorie de la question en VBA (Access, Excel se programment en VBA, pas en VB6)
Non, les noms des champs sont fournies par le fichier exporté de Access.
Donc, tu ne pourras les modifier qu'après avoir fait l'import, ce sont les noms apparaissant sur la première ligne de la feuille Excel (normalement)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_petchy
Messages postés710Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention19 mai 20154 12 janv. 2008 à 09:04
salut
moi,pour exporter mes données Access vers Excel j'utilise la commande "données" qui se trouve dans excel et à partir de la tu peut choisir de ne pas rapatrier le non des champs et tu actualise à chaque ouverture de ton fichier Excel.
dans Excel 2007 tu vas dans
données
a partir du fichier Access
tu vas chercher ton fichier Access
voila
@plus
petchy
basamir
Messages postés335Date d'inscriptionvendredi 21 octobre 2005StatutMembreDernière intervention 8 mars 2008 12 janv. 2008 à 16:03
Merci MPi peux tu stp m'expliquer d'avantage cette méthode je te prie, moi je procède de cette manière pour exporter ma table ACCES à EXCEL:
Private Sub createFile()
Dim fileName As String
Dim appExcel As Excel.Application
' Exécution d'Excel
Set appExcel = CreateObject("Excel.Application")
' Attribut de visibilité d'Excel
appExcel.Visible = False
' Pour éviter les questions!!!
appExcel.AlertBeforeOverwriting = False
appExcel.DisplayAlerts = False
' Déclaration du chemin du fichier Excel
Dim cheminFichierExcel As String
' Déclaration du fichier Excel à ouvrir
Dim fichierExcel As Excel.Workbook
' remplissage du fichier
Dim bd As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim req As String
Dim i As Integer
bd.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & File1.Path & "" & File1.fileName
bd.Open
If Check1.Value = 0 Then
' Ouverture du fichier Excel
fileName = Combo2.Text & ".xls"
Set fichierExcel = appExcel.Workbooks.Add
req = "SELECT * FROM `" & Combo2.Text & "`"
Rs.Open req, bd, adOpenForwardOnly, adLockReadOnly
' remplissage du fichier excel
If Not (Rs.EOF And Rs.BOF) Then
' Ecriture des en-têtes de colonnes et des valeurs
generateExcel Combo2.Text, Rs, appExcel
End If
Rs.Close
fichierExcel.Close True, File2.Path & "" & fileName
File2.Refresh
MsgBox "Fichier généré avec succès", vbOKOnly, "Access2Excel"
Else
For i = 0 To (Combo2.ListCount - 1)
' Ouverture du fichier Excel
fileName = Combo2.Text & ".xls"
Set fichierExcel = appExcel.Workbooks.Add
Combo2.ListIndex = i
req = "SELECT * FROM `" & Combo2.Text & "`"
Rs.Open req, bd, adOpenForwardOnly, adLockReadOnly
' remplissage du fichier excel
If Not (Rs.EOF And Rs.BOF) Then
' Ecriture des en-têtes de colonnes et des valeur
generateExcel Combo2.Text, Rs, appExcel
End If
Rs.Close
fichierExcel.Close True, File2.Path & "" & fileName
Next i
Combo2.ListIndex = 0
File2.Refresh
MsgBox "Fichiers générés avec succès", vbOKOnly, "Access2Excel"
End If
bd.Close
appExcel.quit
End Sub
Le savoir est la lumière de nous tous, partageons le!