Je suis actuellement sous Excel 2013, et je voudrais traiter un fichier créé sous Excel 2010 comme une base de données, c'est-à-dire pouvoir y accéder (lecture et modifications) sans qu'il soit ouvert.
Le fichier Bdd_droits.xls en question est de type "Excel 97-2003" d'après ce que je vois dans l'Explorateur de Windows.
Voici la macro de connexion à la base de données :
VB:
Sub Connexion(FichierBdD)
Set Cn = New ADODB.Connection
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & FichierBdD & ";Extended Properties=Excel 8.0;"
.Open
End With
End Sub
La valeur passée dans FichierBdD est J:\Marcel32\Bdd_droits.xls et en effet le fichier Bdd_droits.xls qui doit me servir de BdD est bien sur ma clef USB dans le dossier Marcel32.
A chaque exécution, j'obtiens un message d'erreur :
Erreur d'exécution '3706':
Impossible de trouver le fournisseur. Il est peut-être mal installé.
Bonjour,
Exact, il faudrait cocher la librairie : ActiveX DataObject Ça marche bien avec la 2.0
En cas de besoin, le site de Boisgontier ( parmi pas mal d'autres ) est bien pourvu en matière de traitement des fichiers fermés et avec des fichiers d'exemples déjà tous prêts. ADO
Re : Connexion en VBA à fichier .XLS comme base de données
J'ai déjà "Microsoft ActiveX Data Objects 6.0 Library" de coché, ainsi que "Microsoft ADO Ext. 2.8 for DDL and Security" (je ne sais elle est nécessaire).
Je vais aller regarder le site de Boisgontier (ce nom me dit quelque chose ; un forumeur peut-être ?).
Re : Connexion en VBA à fichier .XLS comme base de données
J'ai fini par trouver une solution.
Je vous la donne quand même : remplacer "Microsoft.Jet.OLEDB.4.0" par "Microsoft.ACE.OLEDB.12.0" dans la macro.
Et je vous indique ce qui semble être la raison pour laquelle ça ne fonctionnait pas : mon Excel est en 64 bits...