export excel dao champs multivalués
Bonjour a tous,
Je coince sur un code que j'ai récupéré dans un bouquin pour unn transfert vers excel.
Le code fonctionne bien pour une requete "simple", mais la requete a exporter contien un champ mulitivalué.
Je recoit donc un beau message d'erreur: erreur d'execution 1004, argument non valide.
La ligne surlignée est la suivante:
Code:
.Cells(intLigne, intColonne) = fld.Value
Je ne trouve pas de solution pour m'en sortir
Voici le code complet:
Code:
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
| Sub ExportationVersExcel()
Dim xl As Excel.Application
Dim wbk As Excel.Workbook
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim intColonne As Integer
Dim intLigne As Integer
' Ouvrir la requête Clients+Villes
Set db = CurrentDb()
Set rst = db.OpenRecordset("export excel")
' Démarrer Excel
Set xl = New Excel.Application
xl.Visible = True
With xl
' Créer un nouveau classeur
Set wbk = .Workbooks.Add
' Renommer la 1ère feuille du classeur
wbk.Sheets("Feuil1").Name = "Test"
With wbk.Sheets("Test")
' Transférer les noms de champs
intColonne = 1
For Each fld In rst.Fields
.Cells(1, intColonne) = fld.Name
intColonne = intColonne + 1
Next
' Transférer les enregistrements
intLigne = 2
While Not rst.EOF
intColonne = 1
For Each fld In rst.Fields
Debug.Print intLigne
Debug.Print intColonne
.Cells(intLigne, intColonne) = fld.Value
intColonne = intColonne + 1
Next
' Enregistrement suivant
rst.MoveNext
intLigne = intLigne + 1
Wend
End With
' Fermer le classeur en l'enregistrant
wbk.SaveAs "C:\Access Référence\test.xlsx"
wbk.Close
End With |
Si qq pouvait me donner quelques infos, ce serait sympa.
Merci a tous.