Bonjour à tous !

Si aujourd'hui je vous écris, c'est parce que je rencontre un problème de connexion entre Excel et Access. J'ai déjà fait plusieurs recherche, mais sans résultat.

Bref, voici ma situation actuelle :

Je suis actuellement en train de finir un programme sur Excel qui réalise 3 étapes importantes :

Étape 1 :
Importe des données, sur la première feuille Excel, provenant d'autres tableurs Excel (Réalisé en VBA)
Étape 2 : Importe des données, sur la deuxième feuille Excel, provenant d'une requête d'une base de données Access (Pour cela, j'ai utilisé l'assistant pour importer les données dans Excel
Données/A partir d'un fichier Access).
Étape 3 : Et enfin, après plusieurs opérations de mises à jour effectuées, je remets à jour les données et/ou intègre les nouvelles données dans la base de donnée initiale
(Utilisé à l'étape 2).


Le problème ?
Quand j'exécute le code d'intégration ou Mise à jour de données, j'ai une erreur :
"Impossible d'utiliser E:\....\Suivi.mdb, le fichier est en cours d'utilisation"

J'en déduis qu'il faut que lorsque que je lance ma macro d'intégration/mise à jour des fichiers, il faut que je ferme la connexion Excel->Access existante de l'étape 2.
Comment puis-je faire en VBA, pour que dés que je lance mon code d'intégration/Mises à jour, la connexion de la feuille 2 soit fermée et ainsi libérer ma base de donnée...

Merci de m'avoir lu

A titre informatif voici le code VBA pour l'intégration de nouvelles données :

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
Private Sub CommandButton2_Click()
 
Dim maTable As String
 
 
derniere_ligne_feuil3 = Sheets(3).Cells.Find("*", , , , , xlPrevious).Row
premiere_ligne = 1
 
 
Dim source As database
Dim rsT As DAO.Recordset
 
Set source = dbengine.OpenDatabase("E:\Suivi-trans.mdb")
Set rsT = source.OpenRecordset("Base_affaire", dbopendynaset)
'Base_affaire est la requête dans laquelle j'ajoute les nouvelles données
 
 
derniere_ligne_feuil3 = Sheets(3).Cells.Find("*", , , , , xlPrevious).Row
For n = 1 To derniere_ligne_feuil3
 
    If Cells(lig, 10) = "Conserver" Then
 
        Code_Affaire = Sheets(3).Cells(n, 1)
        nouvLibelle = Sheets(3).Cells(n, 2)
        nouvAgence = Sheets(3).Cells(n, 3)
        With rsT
            .MoveFirst
            .FindFirst ("N°_affaire= " & "'" & (Code_Affaire) & "'")
            If .NoMatch Then
                .AddNew
                .Fields("N°_affaire") = Code_Affaire
                .Fields("Désignation_affaire") = nouvLibelle
                .Fields("Agence") = nouvAgence
                .Update
            Else
 
                MsgBox "valeur " & Code_affaire & "déjà existant"
 
            End If
        End With
    End If
Next
 
rsT.Close
source.Close
 
End Sub
A votre bon coeur