bonjour à tous,
J'ai consulté les différents articles relatifs à ce type d'erreur mais je n'ai pas trouvé de solution.
J'ai un problème concernant l'extraction d'une requête ACCESS dans un onglet spécifié d'une feuille EXCEL.
voici mon code:
------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Option Compare Database Option Explicit --------- Private Sub Commande5_Click() Call Exportation("requete", "C:\sortie.xls", "onglet2") End Sub
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
23
24
25
26
27 Sub Exportation(requete, sortie As String, onglet2 As String) Dim xlA As Object, xlW As Object, t As DAO.Recordset Dim s As String, NumChamp As Long, ligne As Long Dim mabase As Database Set xlA = CreateObject("excel.application") 'lance Excel xlA.Visible = True xlA.Workbooks.Open (sortie) 'ouvre le fichier Set xlW = xlA.activeworkbook ligne = 1 Set mabase = CurrentDb Set t = mabase.OpenRecordset(requete) 'ouvre la requete Do Until t.EOF ligne = ligne + 1 'ligne suivante dans la feuille Excel For NumChamp = 0 To 1 'pour chaque colonne de la requete s = t(NumChamp) 'recupération des données au format Texte xlW.Sheets(onglet2).Cells(ligne, NumChamp + 1) = s 'ecriture dans la cellule Next NumChamp t.MoveNext 'enregistrement suivant Loop t.Close xlW.Save xlA.Quit Set xlA = Nothing ' puis libère la référence. End Sub
Mon problème se situe à la ligne en gras. J'ai le message suivant:
erreur d'execution 3061.Trop peu de parametres.1 attendu
Je ne comprends pas ce qu'on entend par parametre attendu. Je ne vois pas ce qui cloche.
"requete" est une requête faite à l'aide d'access dont le code en sql est le suivant:
elle me permet de compter le nombre de kilometres réalisés(sum(counter.lecture)) par une locomotive(id rame) pour une affaire donnée.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT COUNTER.[ID rame], Sum(COUNTER.Lecture) AS SommeDeLecture FROM [COUNTER] GROUP BY COUNTER.[ID rame], COUNTER.[ID projet] HAVING (((COUNTER.[ID projet])=[Formulaires]![Formulaire GENERAL]![AFFAIRE])) ORDER BY COUNTER.[ID rame];
remarques supplémentaires
*lorsque je lance la requête sur access, elle fonctionne
*je suppose que le problème vient d'une compatibilité entre ma requête et openrecordset car j'ai fais ce test:
j'ai executé la requete sous access et j'ai copié les données sur une table, ensuite j'ai executé ma fonction d'export sur cette table, et la ça a fonctionné...
question subsidiaire:
dans certains post j'ai vu OpenRecordset(requete,dbOpensnapshot) ou encore OpenRecordset(requete,dbOpenDynaset), à quoi correspondent ces expressions?
Désolé si mon message est long, c'est par souci de clarté.
J'espère qu'au moins j'ai été clair.
Merci d'avance pour les réponses.
Partager