Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Connexion ADODB -> Ouverte fichier non voulue

Ikito

XLDnaute Occasionnel
Bonjour à tous,

Le but de mon fichier est de parcourir un emplacement réseau partagé et de récupérer des informations d'un certain type de fichier.
Aucun problème sur ce point, j'arrive à récupérer les donnés que je souhaite sur les fichiers fermés souhaités.

Le problème est le suivant :

Si le fichier en question est ouvert par quelqu'un sur son poste, les données ne sont pas récupérées et le fichier est ouvert, comme un Workbooks.Open en quelques sortes.

Résultat : Le programme plante.

Comment faire pour, soit :
  • Récupérer les données du fichier tout de même sans que ça l'ouvre
  • Ne pas récupérer les données du fichier, et relancer le programme plus tard lorsque les fichiers seront fermés.
Voici le bout de code que j'ai, où il faut certainement ajouter une condition...

VB:
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & Fichier & ";Mode=Read" & ";Extended Properties=""Excel 8.0;HDR=No;"";"
               
Set ADOCommand = New ADODB.Command
With ADOCommand
    .ActiveConnection = Source
    .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
End With
               
Set Rst = New ADODB.Recordset
On Error GoTo ResumeSuite:
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
 
Dernière édition:

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

C'est bien la première fois que j'entends dire qu'une connexion ADODB ouvre l'application d'un fichier source.
Ce sont des fichiers .xls qui sont à lire ? Si xlsx ou xlsm remplace "Excel 8.0" par "Excel 12.0" dans la chaîne de connection.
Tester également avant Source.Open: Source.CursorLocation = adUseClient.
Répéter cette dernière pour Rst au besoin.

P.S. c'est toujours la chiotte à dépatouiller ces histoires d'ouverture en mode exclusif.
Normalement ADODB n'intérroge que les versions enregistrées des source, pas les versions en mémoire (donc ouverte par leur application) et ne devrait pas poser de problème. Mais de temps à autre, je n'ai jamais réussit à savoir pourquoi, cela fait problème... Paramétrage réseau ou serveur????

Bon après-midi
 

Ikito

XLDnaute Occasionnel
Bonjour Roblochon,

Effectivement, ce sont des fichiers en .xlsm. Ca fonctionne parfaitement avec .12 au lieu de .8.
Cependant, pourquoi dans un cas ça les ouvre en Lecture Seule et dans l'autre ça ne les ouvre pas et ça récupère la valeur... ? Va savoir.

Merci
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Cependant, pourquoi dans un cas ça les ouvre en Lecture Seule et dans l'autre ça ne les ouvre pas et ça récupère la valeur... ?

En employant les bons outils pour les bons formats de fichier, les problèmes se règlent.
Employer une bibliothèque faite pour les formats xlsx en lui disant d'ouvrir un fichier .xls c'est comme tenter de mettre une disquette 3'1/4 (souple) dans un lecteur CD.


Cordialement
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…