par , 18/11/2018 à 10h25 (1558 Affichages)
Bonjour,
Je ne parlerai pas de la solution qui est d'utiliser
- Recordset.fields(i)
- Recordset!NomChamp
Très bien documentée dans les différents forums et aides en tout genre!
Mon billet porte sur la solution avec CopyFromRecordset.
Merci à tee_grandbois.
Mieux qu'une explication de texte, le code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Dim oRecSetSource As Recordset, oRecSetClone As Recordset
Dim varBookmark As Variant
Set objExcelApp = New Excel.Application
objExcelApp.Visible = True
Set wb = objExcelApp.Workbooks.Open("G:\Access\test")
Set ws = wb.Sheets(1)
sSQL = "SELECT * FROM tbl "
Set oRecSetSource = CurrentDb.OpenRecordset(sSQL)
Set oRecSetClone = oRecSetSource.Clone
Do While Not oRecSetSource.EOF
Debug.Print i
oRecSetClone.Bookmark = oRecSetSource.Bookmark
ws.Range("A" & i).CopyFromRecordset oRecSetClone, 1
oRecSetSource.MoveNext
Loop
End Sub |
Remarque
J'utilise un reocordset clone car si j'utilise CopyFromRecordset sur oRecSetSource directement j'au une erreur 3021, pas d'explication pour cette erreur.
D'où l'utilisation d'un recordsetClone.