Sur mon PC de boulot, j'ai une base ACCESS mais qui n'est accessible que par une liason ODBC (si j'ai bien compris access n'est pas installe sur ce PC)
je souhaiterais extraire des données d'une table via une requete avec une condition "WHERE", pour les mettre dans un fichier excel
avec le programme ci-dessous mon PC plante est tente d'ouvrir ACCESS, je pense que la ligne
vBaseDeDonnées.Open & vSQL
sont à mettre en liaison ODBC
Avez-vous une solution
Cela me dépannerait bien
Option Explicit
Public vBaseDeDonnées As New ADODB.Connection
Public vDonnées As New ADODB.Recordset
Public vTable As String
Public vSource As String
Sub Connexion()
Dim vSQL As String
Dim vDossier As String
vDossier = "D:"
vSource = "bd1.mdb"
vTable = "Clients"
vBaseDeDonnées.Open "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;" & "persist security info=false;" & "data source=" & vDossier & vSource
vSQL = "Select * From " & vTable
vDonnées.Open vSQL, vBaseDeDonnées, adOpenStatic, adLockReadOnly
End Sub
ODBC et OLEDB sont deux protocoles distincts d'accès aux données; ODBC étant le plus ancien. Tu ne peux pas utiliser OLEDB avec une connexion ODBC, et inversement. Si c'est une base Access récente, tu peux être certain à 99,999% qu'elle supporte les deux protocoles. Tu dois utiliser un ou l'autre et pas les deux en même temps. Jette aussi un oeil sur ton sujet initial, qui d'ailleurs se confond finalement avec celui-ci. J'y ai mis le lien vers un site de référence sur les chaînes de connexion.
P.S. Ce n'est d'ailleurs pas impossible qu'un administrateur qui passerait par ici, décide de tout regrouper dans un seul sujet, pour simplifier le processus.