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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
' Activer référence Microsoft ActiveX Data Objects 6.1 Library
'Déclaration variables public
Public Cn As ADODB.Connection
Public rs As ADODB.Recordset
Public strCn As String
Public RDest As Variant
Public CheminAccess As String
Public FichierExcel As String
Public Table As String 'Nom de la table Access
Public Chemin1 As String 'Chemin du fichier mdb
Public Fichier1 As String 'Fichier mdb
Public i As Long 'C'est un compteur pour faire la boucle en f(j)
Public j As Long 'C'est un compteur pour lister les table
Public k As Integer 'C'est un conteur pour les feuilles Excel
Public x As Long 'C'est un compteur pour les trois fichiers
Public y As Long 'C'est un compteur pour inserer les ligne
Sub Ouverture_Connection_Access_ADO()
Application.ScreenUpdating = False
' Connection ? la base Access
Set Cn = New ADODB.Connection
strCn = "Provider=Microsoft.ACE.OLEDB.12.0; " & "Data Source=" & CheminAccess & ";"
Cn.Open strCn
' Ouverture recordset / table
' Objet Recordset repr?sente les enregistrements d'une table
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM" & "[" & Table & "]", Cn, adOpenKeyset, adLockOptimistic
End Sub
Sub Fermeture_Connection_Access_ADO()
Application.ScreenUpdating = False
' Fermeture recordset et connection
rs.Close
Set rs = Nothing
Cn.Close
Set Cn = Nothing
End Sub
'Code principale
Sub Import_AccessData()
'fige l'?cran
Application.ScreenUpdating = False
FichierExcel = ActiveWorkbook.Name
Workbooks(FichierExcel).Worksheets("Feuil1").Activate
With Worksheets("Feuil1")
Chemin1 = "G:\Test"
Fichier1 = "Equipment.mdb"
CheminF1 = Chemin1 & "\" & Fichier1
Set Dernier_Cellule_Vide = Cells(Cells.Columns.Count, 1).End(xlUp) 'Permet de d?terminer la derni?re cellule vide de la colonne 1
End With
chemin = ActiveWorkbook.Path & "\" & FichierExcel
j = Dernier_Cellule_Vide.Row 'permet de récupérer le N°de ligne dans la variable j
For i = 8 To j 'Boucle pour récupérer les noms des tables à extraire vers Excel
Table = Sheets("Feuil1").Range("A" & i)
'Barre de progression
For x = 1 To 2 'Boucle pour récupérer les tables à extraire vers Excel des 2 fichiers
Select Case x
Case 1
CheminAccess = CheminF1
FeuilleX = "V3R7"
Case 2
CheminAccess = CheminF2
FeuilleX = "V4R1"
End Select
' Connection à la base Access
Call Ouverture_Connection_Access_ADO
'On colle les valeurs sur la feuille "Communs" pour faire la base de recherche.
FichierExcel = ActiveWorkbook.Name
Set RDest = Workbooks(FichierExcel).Sheets("COMMUNS").Cells(Cells.Columns.Count, 1).End(xlUp)
If x <> 1 Then Set RDest = RDest.Offset(1, 0)
On Error Resume Next
' Fermeture recordset et connection
Call Fermeture_Connection_Access_ADO
'Reste de mon code
.
End sub |
Partager