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:

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"))
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
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
Lorsque je visualise ma requête dans Access, j'ai mon data qui apparait, filtré avec les paramètres de ma table _Parameters-Extract.

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.