ADODB connection sur fichier déjà ouvert
Bonjour à tous,
Depuis un classeur Excel, j'utilise une ADODB Connection pour aller chercher le contenu d'une plage dans un classeur Excel "Source" sur un réseau
Quand mon classeur Excel source n'est utilisé par personne, jusque là, tout va bien.
Mais quand il est ouvert par un utilisateur, ma Connection.Open semble "télécharger" le fichier en local et l'ouvre (?), puis ma requête plante...
J'ai essayé de farcir les commandes avec les options en ReadOnly, mais je sèche.:?
Merci pour le coup de main, ci-dessous le code que j'utilise :
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
| Dim Source As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim ADOCommand As ADODB.Command
Dim Fichier As String, Cellule As String, Feuille As String
'Adresse de la cellule contenant la donnée à récupérer
Cellule = "Planning_" & ctUserName
Feuille = "Planning 2013$"
'Chemin complet du classeur fermé
Fichier = ThisWorkbook.Path & "\" & ctBaseCentrale
Set Source = New ADODB.Connection
With Source
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=NO;"""
.Mode = adModeRead
.Open
End With
Set ADOCommand = New ADODB.Command
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
End With
Set Rst = New ADODB.Recordset
Rst.Open ADOCommand, , adOpenKeyset, adLockReadOnly
Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
Range("A21").CopyFromRecordset Rst
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing |
pour info, j'ai vérifié mon MSDAC, il est > 2.5.
Merci,
Sylvain