j'arrive pas a faire une liaison en VBA entre excel et une base access

j'arrive pas a faire une liaison en VBA entre excel et une base access - VB/VBA/VBS - Programmation

Marsh Posté le 16-07-2006 à 13:58:26    

bonjour !
 
j'essaye de récuperer des enregistrements dans une base access a partir d'une macro en VBA sous excel.
Le probleme et que des le lancement de la macro, j'ai eu erreur a qui me dit que le type Database n'est pas reconnu !
 
voici mon code
 

Code :
  1. Sub IntBDD()
  2. Dim DBA As Database
  3. Dim Enreg As Recordset
  4. Dim Ligne As Long
  5. 'Ouverture de la base de données "Depart75.mdb"
  6. Set DBA = OpenDatabase("c:\personnes.mdb" )
  7. 'Ouverture des enregistrements de la table "Depart75"
  8. Set Enreg = DBA.OpenRecordset("SELECT * FROM personnes ORDER BY nom ASC" )
  9. Ligne = 2
  10. Worksheets("Feuil1" ).Select
  11. 'Premier enregistrement de la table "Depart75"
  12. Enreg.MoveFirst
  13. 'On parcours la base
  14. While Enreg.EOF = False
  15.     ' Place le contenu du champ "Lieux" dans la 1ère colonne de la feuille EXCEL
  16.     Cells(Ligne, 1) = Enreg!ID
  17.     Cells(Ligne, 2) = Enreg!nom
  18.     Cells(Ligne, 3) = Enreg!prenom
  19.     Cells(Ligne, 4) = Enreg!age
  20.    
  21.     ' Ligne suivante
  22.     Ligne = Ligne + 1
  23.     ' Enregistrement suivante
  24.     Enreg.MoveNext
  25. Loop
  26. End Sub


 
 
Est ce que vous pourriez me dire d'ou est ce que ca vient ?
Merci d'avance !

Reply

Marsh Posté le 16-07-2006 à 13:58:26   

Reply

Marsh Posté le 16-07-2006 à 14:48:25    

Reply

Marsh Posté le 17-07-2006 à 22:28:41    

Peut-être que ces quelques lignes pourront t'aider
 

Code :
  1. Dim db As New ADODB.Connection
  2. Dim RST As New ADODB.Recordset
  3. Dim strCheminBD as String, strSQL as String
  4. strCheminBD = "C:/taBD.mdb"
  5. strSQL = "SELECT * FROM taTable"
  6. db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=" & strCheminBD & ";"
  7. RST.Open strSQL, db, adOpenStatic, adLockOptimistic
  8. Do While Not RST.EOF
  9. ...
  10. RST.MoveNext
  11. Loop
  12. db.Close


 
Tu ne codes pas sous Access, mais sous Excel! C'est différent. Le plus important est sans aucun doute la string de connexion (celle qui commence par « PROVIDER »)
 
N'oublie pas aussi de mettre un « On Error » pour gérer les possibles erreurs de connexion etc etc.


Message édité par Khaostyke le 17-07-2006 à 22:39:05
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed