[VBA-A2003] Export d'un Recordset vers Excel, avec SQL statement
Bonsoir à tous,
Je souhaite exporter une table par blocs, définis par la valeur contenue dans en champ, appelé CVALBDM.
En effet, ma table comporte 500 000+ lignes, ce qui est bien trop pour une feuille Excel ! :aie:
Il s'agit de transactions boursières horodatées concernant 38 actions différentes, mais les blocs de données sont mis à la suite les uns des autres. CVALBDM est le code valeur identifiant chaque action.
Il faut donc une boucle avec le code valeur en variable, pour exporter les données relatives à chaque action dans des feuilles Excel, bloc après bloc...
D'où le code suivant
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Sub Creation_RecordSet()
'Déclaration des variables
Dim data As Database
Dim code_valeur As Long
Dim Mon_Recordset As Recordset
Dim requeteSQL As String
Set data = CurrentDb.OpenRecordset("data", dbOpenSnapshot)
'Affectation d'une valeur à la variable code_valeur
code_valeur = 1526
'Définition de la requête SQL
requeteSQL = "SELECT * FROM data WHERE cvalbdm = " & code_valeur
'Définition du recordset à appeler
Set Mon_Recordset = data.OpenRecordset(requeteSQL, dbOpenSnapshot)
'Export du Recordset obtenu par la méthode TransferSpreadSheet
End Sub |
Problème : je ne parviens pas à faire accepter ma requête SQL par aucun des types de Recordset.
dbOpenTable retourne une erreur Runtime 3011 (ce qui est normal, d'après l'Aide)
dbOpenDynaset, dbOpenSnapShot et dbOpenForwardOnly retourne une erreur de type 13 (Type mismatch).
Je ne suis pas du tout à l'aise avec VBA pour Access, ni avec les concepts de Database et Recordset, je suis donc assez perdu...
Quelle est mon erreur ??
D'avance merci à tous :D
Erwann