À l'aide de ADODB à accès ouvert de fichier xls

Bien que j'ai travaillé avec VBA pour Excel pour un temps assez long, j'ai un problème que je ne peut pas résoudre par moi-même. J'ai décrit ci-dessous, l'espoir d'obtenir de l'aide ou des conseils.
Je suis à l'aide d'Excel 2007 et Windows XP, tous mis à jour avec les nouveaux patchs.

Je suis très souvent à l'aide de code suivant pour obtenir des données à partir d'un autre classeur:

Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=g:\source.xls;Extended Properties=Excel 8.0;"

Sql = "SELECT Field1, Field2 FROM [Sheet1$]"

Set rst = New ADODB.Recordset
rst.Open Sql, conn, adOpenForwardOnly

Worksheets("Results").Range("A2").CopyFromRecordset rst

rst.Close
Set rst = Nothing

conn.Close
Set conn = Nothing

Aussi simplement que peut - il suffit de se connecter à des fichiers et d'obtenir quelques données. Il travaille parfait tant, comme le fichier source qui est situé sur un lecteur réseau (g:\source.xls) n'est pas ouvert sur un autre ordinateur.
Quand un autre utilisateur sur un autre ordinateur a ouvert le fichier et j'essaie d'exécuter le code suivant, j'ai remarqué une chose que je tiens à vous débarrasser de: le fichier source Excel est ouvert (en mode lecture seule) sur mon ordinateur et il n'est pas fermé après la connexion à ce fichier a été fermé. Ce qui est pire, même si je ferme ce fichier source manuellement, il laisse peu de déchet dans mon dossier, comme il n'a jamais été fermé: voir l'image après quelques exécution de code (la source des fichiers a été fermé avant):
À l'aide de ADODB à accès ouvert de fichier xls

J'ai commencé à croire que c'est un bug qui ne peut pas être résolu espère que je me trompe 🙂

OriginalL'auteur mj82 | 2012-01-24