Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 base de données Access depuis un fichier Excel.

  • Initiateur de la discussion Initiateur de la discussion gothc
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gothc

XLDnaute Occasionnel
Bonjour le forum j'ai un probleme avec mon fichier quand il demarre j'ai une erreur

erreur de compilation projet ou bibliothèque introuvable
Set BD_Employes = DAO.OpenDatabase(ActiveWorkbook.Path & "\BD_Employés.mdb", False, False)

j'ai bien mon dossier EMPLOYES avec mon fichier excel et mon fichier access BD_Employés.mdb
Merci de votre aide



VB:
Private Sub Workbook_Open()
    Dim Base_Analyse As Database
    Dim Table_ANALYSE As Recordset
   
    Application.EnableEvents = True
   
   
    Sheets("Employés").EMP_liste_rubriques.Clear

Sheets("Employés").EMP_liste_rubriques.AddItem "Col. Sélectionnées"
Sheets("Employés").EMP_liste_rubriques.AddItem "TOUT"
Sheets("Employés").EMP_liste_rubriques.AddItem "TELEPHONIE"
Sheets("Employés").EMP_liste_rubriques.AddItem "RENSEIGNEMENTS_GENERAUX"
Sheets("Employés").EMP_liste_rubriques.AddItem "CACES"
Sheets("Employés").EMP_liste_rubriques.AddItem "PERMIS"
Sheets("Employés").EMP_liste_rubriques.AddItem "HABILITATIONS"
Sheets("Employés").EMP_liste_rubriques.AddItem "SECOURISME"
Sheets("Employés").EMP_liste_rubriques.AddItem "MEDICAL"



        Set BD_Employes = DAO.OpenDatabase(ActiveWorkbook.Path & "\BD_Employés.mdb", False, False)
        Set Table_employes = BD_Employes.OpenRecordset("SELECT Employés.* " & _
        "FROM Employés " & _
        "ORDER BY Employés.Nom ASC", dbOpenDynaset)
       
        If Table_employes.RecordCount = 0 Then GoTo 888
        Table_employes.MoveFirst
        Table_employes.MoveLast
        aa = Table_employes.RecordCount
       
        Sheets("Fiche individuelle").fi_liste_employes.Clear
        Table_employes.MoveFirst
        ligne = 1
            Sheets("Fiche individuelle").fi_liste_employes.AddItem
       
        For bb = 0 To aa - 1
       
            Sheets("Fiche individuelle").fi_liste_employes.AddItem
            Sheets("Fiche individuelle").fi_liste_employes.List(ligne, 0) = Table_employes.Fields("N°_Enr").Value
            On Error Resume Next
            Sheets("Fiche individuelle").fi_liste_employes.List(ligne, 1) = Table_employes.Fields("Nom").Value
            On Error Resume Next
            Sheets("Fiche individuelle").fi_liste_employes.List(ligne, 2) = Table_employes.Fields("Prénom").Value
            Table_employes.MoveNext
           
            ligne = ligne + 1
       
        Next bb
       
       
888:
        Table_employes.Close
        Set Table_employes = Nothing
       
    BD_Employes.Close
    Set BD_Employes = Nothing
   
    Sheets("Employés").Activate
    Sheets("Employés").ScrollRow = 10
   
BD_Aniv_Saint.Show
 
Bonsoir,
ADO c'est plus souple que DAO!
VB:
Sheets("Fiche individuelle").fi_liste_employes.Clear
With CreateObject("Adodb.connection")
   .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & "\BD_Employés.mdb;"
   Sheets("Fiche individuelle").fi_liste_employes.Column = .Execute("SELECT Employés.* FROM Employés ORDER BY Employés.Nom ASC").GetRows
   .Close
End With
 
Bonjour,
VB:
Private Sub Workbook_Open()
Application.EnableEvents = True
Sheets("Employés").EMP_liste_rubriques.List = Array("TOUT","TELEPHONIE","RENSEIGNEMENTS_GENERAUX","CACES","PERMIS","HABILITATIONS","SECOURISME","MEDICAL")

Sheets("Fiche individuelle").fi_liste_employes.Clear
With CreateObject("Adodb.connection")
   .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & "\BD_Employés.mdb;"
   Sheets("Fiche individuelle").fi_liste_employes.Column = .Execute("SELECT Employés.* FROM Employés ORDER BY Employés.Nom ASC").GetRows
   .Close
End With
     
 
    Sheets("Employés").Activate
    Sheets("Employés").ScrollRow = 10
 
BD_Aniv_Saint.Show
 
Si si je suis sur 365 pro 64 bits mais utiliser DAO en dehors d'Access est une hérésie !

En dot.net on utilise une autre technologies mais Ado est accessible bien que pas recommandé. Pas suffisamment sécurisé.
Ado reste cependant la méilleur techno pour VBA.
 
Dernière édition:
bonjour,
donc je te redonne le code qu'il faut mettre en lieu et place de l’existant!
VB:
Private Sub Workbook_Open()
    Application.EnableEvents = True
    Sheets("Employés").EMP_liste_rubriques.List = Array("Col. Sélectionnées", "TOUT", "TELEPHONIE", "RENSEIGNEMENTS_GENERAUX", "CACES", "PERMIS", "HABILITATIONS", "SECOURISME", "MEDICAL")

    Sheets("Fiche individuelle").fi_liste_employes.Clear
    With CreateObject("Adodb.connection")
       .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.Path & "\BD_Employés.mdb;"
       Sheets("Fiche individuelle").fi_liste_employes.Column = .Execute("SELECT Employés.* FROM Employés ORDER BY Employés.Nom ASC").GetRows
       .Close
    End With
   
    Sheets("Employés").Activate
    ActiveWindow.ScrollRow = 10
   
BD_Aniv_Saint.Show
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…