Problème d'import entre Excel et Access
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:
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:
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.