Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Importer des données Access avec VBA

4 réponses
Avatar
christophe
Bonsoir,

Je cherche =E0 importer des donn=E9es Access dans Excel. Avec une requ=EAte
simple, la proc=E9dure d'importation d'Excel fonctionne bien mais =E7a ne
passe plus avec une requ=EAte param=E9tr=E9e. Savez-vous comment faire ?

J'ai r=E9cup=E9r=E9 ce bout de code VBA sur le web :
http://www.vbfrance.com/infomsg_IMPORTATION-DANS-EXCEL-RESULTAT-REQUETE-PAR=
AMETREE-ACCESS_822037.aspx?p=3D2

Sub maj_brico()

' importe les donn=E9es depuis Brico

Dim Db As Database, Rs As Recordset, strSQL As String
Set Db =3D Workspaces(0).OpenDatabase("brico.mdb", False, False)
strSQL =3D "Select * FROM Representant;"
Set Rs =3D Db.OpenRecordset(strSQL)
If Rs.RecordCount > 0 Then
Sheets("NomDeFeuille").Range("A1").CopyFromRecordset Rs
Else
MsgBox "Aucune donn=E9e de trouv=E9e"
End If

Db.Close
Set Rs =3D Nothing
Set Db =3D Nothing

End Sub

Mais malheureusement, l'=E9diteur VB me dit que le type de donn=E9e
database n'existe pas.

Avez-vous une id=E9e pour r=E9soudre ce probl=E8me ?

Mille mercis d'avance
Christophe

4 réponses

Avatar
JB
Bonsoir,

http://boisgontierjacques.free.fr/pages_site/access.htm

JB
http://boisgontierjacques.free.fr

On 20 oct, 19:33, christophe wrote:
Bonsoir,

Je cherche à importer des données Access dans Excel. Avec une requê te
simple, la procédure d'importation d'Excel fonctionne bien mais ça ne
passe plus avec une requête paramétrée. Savez-vous comment faire ?

J'ai récupéré ce bout de code VBA sur le web :http://www.vbfrance.c om/infomsg_IMPORTATION-DANS-EXCEL-RESULTAT-REQUE...

Sub maj_brico()

' importe les données depuis Brico

Dim Db As Database, Rs As Recordset, strSQL As String
Set Db = Workspaces(0).OpenDatabase("brico.mdb", False, False)
strSQL = "Select * FROM Representant;"
Set Rs = Db.OpenRecordset(strSQL)
If Rs.RecordCount > 0 Then
Sheets("NomDeFeuille").Range("A1").CopyFromRecordset Rs
Else
MsgBox "Aucune donnée de trouvée"
End If

Db.Close
Set Rs = Nothing
Set Db = Nothing

End Sub

Mais malheureusement, l'éditeur VB me dit que le type de donnée
database n'existe pas.

Avez-vous une idée pour résoudre ce problème ?

Mille mercis d'avance
Christophe


Avatar
christophe
On 20 oct, 19:33, christophe wrote:

Mais malheureusement, l'éditeur VB me dit que le type de donnée
database n'existe pas.


Trouvé :
http://ericrenaud.free.fr/droitedao.htm
"Pour que ces exemples fonctionnent, vous devrez créer une référence
de bibliothèques d'objets d'accès
aux données de Microsoft (DAO). Dans Excel, choisissez la commande
Références du menu Outils de Visual Basic Editor et cochez Microsoft
DAO 3.6 Object Library."

christophe

Avatar
JB
Si tu avais lu:

En DAO:
Sub LitAccess()
'cocher Microsoft DAO 3.6 dans Outils/Références
Dim bd As Database
Dim rs As Recordset
Set bd = OpenDatabase(ActiveWorkbook.Path & "access2000.mdb")
Set rs = bd.OpenRecordset("Select * From Client")
Set rs = bd.OpenRecordset("select count(*) as nb from client")
MsgBox rs("nb")
rs.Close

Set rs = bd.OpenRecordset("Select * From Client")
i = 2
Do While Not rs.EOF
Cells(i, 1) = rs!nom_client
Cells(i, 2) = rs!ville
Cells(i, 3) = rs!salaire
rs.MoveNext
i = i + 1
Loop
End Sub

ou

En ADO:
Sub LectureAccess()
'Microsoft ActivexDataObject 2.8 Library
ChDir ActiveWorkbook.Path
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ¬cess2000.mdb"
Set rs = cnn.Execute("SELECT * FROM Client ORDER BY nom_client")
Range("A2").CopyFromRecordset rs
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub

JB







On 20 oct, 20:46, christophe wrote:
On 20 oct, 19:33, christophe wrote:

Mais malheureusement, l'éditeur VB me dit que le type de donnée
database n'existe pas.


Trouvé :http://ericrenaud.free.fr/droitedao.htm
"Pour que ces exemples fonctionnent, vous devrez créer une référence
de bibliothèques d'objets d'accès
aux données de Microsoft (DAO). Dans Excel, choisissez la commande
Références du menu Outils de Visual Basic Editor et cochez Microsoft
DAO 3.6 Object Library."

christophe



Avatar
christophe
On 20 oct, 20:52, JB wrote:
Si tu avais lu:


Je n'ai pas vu ton message (la faute à google groups) sinon je
l'aurais lu !