Bonjour,
J'ai créé une DB Access dans laquelle, j'ai une table avec mes données sur plusieurs années et plusieurs versions (actuel, budget, prévisions).
Depuis excel, je fais d'abord une mise à jour de mes paramètres d'extract en lui indiquant quelle année et quelle version je veux extraire.
Mon update parameters fonctionne très bien car j'arrive à envoyer mon information dans Access et ma table parameters est updatée avec l'année et la version que je veux extraire.
Toutefois, je n'arrive à récupérer mes recordsets se trouvant sur ma requête.
Pour information, j'ai fait une requête pointant sur ma table principale et lui ai rajouté les critères suivants:
Voici encore le code que j'utilise pour extraire mes recordsets dans mon fichier excel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Comme VraiFaux(RechDom("FiscalYear";"_Parameters-Extract") Est Null;"*";RechDom("FiscalYear";"_Parameters-Extract")) / Comme VraiFaux(RechDom("Version_ID";"_Parameters-Extract") Est Null;"*";RechDom("Version_ID";"_Parameters-Extract"))
Lorsque je visualise ma requête dans Access, j'ai mon data qui apparait, filtré avec les paramètres de ma table _Parameters-Extract.
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
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
55
56
57
58 Function ExtractDB() Dim sConnectString As String Dim objConnection As New ADODB.Connection Dim objRecordSet As New ADODB.Recordset Dim objField As ADODB.Field On Error GoTo ErrorImport bolProcess = False 'reset variable gestion erreur sConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & stDBPath & stDBFile & ";" & _ "Jet OLEDB:Database Password=" objConnection.Open sConnectString With objRecordSet .Open sSql, objConnection, adOpenStatic, adLockReadOnly If .EOF Then .Close objConnection.Close GoTo ExitImport End If .MoveFirst Range(stStrt).Select m = 0 Do Until .EOF n = 0 For Each objField In .Fields ActiveCell.Offset(m, n).Value = .Fields(n) n = n + 1 Next m = m + 1 .MoveNext Loop .Close End With bolProcess = True objConnection.Close Exit Function 'Gestion erreur ExitImport: Exit Function ErrorImport: ThisWorkbook.Activate Sheets(1).Select Range(stDBStat1).Value = Err.Description Range(stDBStat2).Value = Now() MsgBox Err.Number & " - " & Err.Description, vbCritical, "Import - ADO Connection" ProtectSheet ("") End End Function
Mon problème se situe donc dans Excel qui n'arrive pas à récupérer le data de ma requête.
Où est le problème?
Dernière info, dans excel, les librairies suivantes ont été activées, par odre chronologique tel que se trouvant dans Référence:
1) Visual Basic for Applications
2) Microsoft Excel 11.0 Object Library
3) OLE Automation
4) Microsoft Forms 2.0 Object Library
5) Microsoft Office 11.0 Object Library
6) Microsoft ActiveX Data Objects 2.0 Library
7) Windows Script Host Object Model
Dernière petite info, j'ai essayé avec les données externes, créer une requête et j'arrive à récupérer mon info, mais cette façon ne me convient pas car ma DB Access et mon fichier Excel sont appelés à se <promener> à plusieurs endroits sur le serveur de mon entreprise et par conséquent, les liens de la query devront être rafraichis, ce que je veux éviter de faire.
MERCI par avance à qui pourra m'aider dans ce problème.
Partager