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 !
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
Problème : je ne parviens pas à faire accepter ma requête SQL par aucun des types de Recordset.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Erwann
Partager