Bonjour à tous !
Si aujourd'hui je vous écris, c'est parce que je rencontre un problème de connexion entre Excel et Access
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 :
Si aujourd'hui je vous écris, c'est parce que je rencontre un problème de connexion entre Excel et Access
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:
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