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
| Sub Requête(ClasseurRequête As String, OngletRequête As String, CellulesDestination As String, SourceDonnées As String, OngletDonnéesEtafi As String, TexteRequête As String)
Dim i As Integer
'Efface les données
Workbooks(ClasseurRequête).Sheets(OngletRequête).Range("A1:BZ50000").ClearContents
'Efface les connexions préexistantes
Workbooks(ClasseurRequête).Sheets(OngletRequête).Select
For i = 1 To ActiveWorkbook.Connections.Count
ActiveWorkbook.Connections.Item(1).Delete
Next i
'Importe les données
With Workbooks(ClasseurRequête).Sheets(OngletRequête).ListObjects.Add(SourceType:=0, Source:=Array( _
"OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & SourceDonnées & "" _
, _
";Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path=" _
, _
""""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2" _
, _
";Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encryp" _
, _
"t Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False" _
, _
";Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False" _
), Destination:=Range(CellulesDestination)).QueryTable
.CommandType = xlCmdSql
.CommandText = TexteRequête
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceDataFile = SourceDonnées
.ListObject.DisplayName = OngletRequête
.Refresh BackgroundQuery:=False
End With
'Efface les connexions
Workbooks(ClasseurRequête).Sheets(OngletRequête).Select
For i = 1 To ActiveWorkbook.Connections.Count
ActiveWorkbook.Connections.Item(1).Delete
Next i
End Sub
Sub DemandeRésultatRequête()
s = "SELECT [Temp_ReqPC2$].[Entité], [Temp_ReqPC2$].[Compte10], [Temp_ReqPC1$].[Libellé] FROM [Temp_ReqPC2$] LEFT JOIN [Temp_ReqPC1$] "
s = s + "ON [Temp_ReqPC2$].[Entité] & '/' & [Temp_ReqPC2$].[MaxPériode] & '/' & [Temp_ReqPC2$].[Compte10]=[Temp_ReqPC1$].[Entité] & '/' & [Temp_ReqPC1$].[Période] &'/'& [Temp_ReqPC1$].[Compte10]"
'---Exécution de la requête
Requête NomClasseurTables, "Feuil2", "$A$1", CheminClasseurs & "\" & NomClasseurTables & ExtClasseurXL, NomOngletTables_BGCIN, s
End Sub |
Partager