begin process at 2012 02 16 14:49:42
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

VBA

 > CODE VBA POUR RÉFÉRENCER UNE DLL SOUS ACCESS

CODE VBA POUR RÉFÉRENCER UNE DLL SOUS ACCESS


 Information sur le tutoriel

Déposé par Pijay le 13/07/2007 11:10:14
Dans la catégorie VBA
Vu : 17 033 fois
 

Ecrire un message privé à l'auteur
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

Note :
Aucune note

 Description

Voici un code VBA pour référencer une DLL (type ActiveX par exemple) sous Access.
Ce code sera certainement utile pour les afficionados de Access.

Tutorial

Pour référencer la DLL :             

               ' On vérifie que la référence n'existe déjà pas
            For i = 1 To application.References.Count
                If application.References(i).Name = Split(Dir(path), ".")(0) Then _
                find = True
            Next

            ' On ajoute une référence de la DLL dans Access
            If Not find Then application.References.AddFromFile path

            ' On charge la DLL en mémoire
            hDLL = LoadLibrary(path)
            If hDLL = 0 Then Err.Raise 15003, , msg_erreur(15003) 'Err.Raise 513, , "Impossible de trouver la DLL"

            ' On récupère l'adresse de la DLL
            adressDLL = GetProcAddress(hDLL, "DllRegisterServer")

            ' On enregistre la DLL
            If CallWindowProc(adressDLL, frm_hwnd, 0&, 0&, 0&) <> ERROR_SUCCESS Then
                ' si on échoue on essaie avec PsExec
                Shell chemin_psexec & " -s -i regsvr32 /s " & path
            End If

            ' On libère la mémoire
            FreeLibrary hDLL

Pour enlever la référencer à la DLL :

            ' On supprime la DLL
            For i = 1 To application.References.Count
            If application.References(i).Name = Split(Dir(path), ".")(0) Then _
               application.References.Remove application.References(i)
            Next

            ' On charge la DLL en mémoire
            hDLL = LoadLibrary(path)
            If hDLL = 0 Then Err.Raise 513, , "Impossible de trouver la DLL"

            ' On récupère l'adresse de la DLL
            adressDLL = GetProcAddress(hDLL, "DllUnregisterServer")

            ' On enregistre la DLL
            If CallWindowProc(adressDLL, frm_hwnd, 0&, 0&, 0&) <> ERROR_SUCCESS Then
           
               
' si on échoue on essaie avec PsExec
               Shell chemin_psexec & " -s -i regsvr32 /s /u " & path
        
            End If

            ' On libère la mémoire
            FreeLibrary hDLL

Commentaires

Commentaire de econs le 08/10/2007 22:57:35 administrateur CS

Pratique d'une manière générale si tu veux utiliser un objet Word, Excel ou Access et que tu ne sais pas quelle version est installée sur le PC. Tu peux ajuster selon tes besoins.

Commentaire de elmahdifati le 09/06/2011 14:35:32

Merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,058 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales