IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

[AC-2013] Invalide use of AddressOf


Sujet :

IHM

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [AC-2013] Invalide use of AddressOf
    Bonjour,
    J'ai trouvé dans le forum, le très intéressant sujet "MsgBox personnalisé en VBA ".

    Malheureusement pour ma part, j'ai une erreur de compile :
    Invalid use of AddressOf operator
    .
    Je n'ai rien change au code qui est publié.
    Je suis pour ma part en Access 2013.

    Est-ce que quelqu'un a une idée d'où pourrait provenir cette erreur ?

    Merci d'avance

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Peux-tu poster le code en erreur et indiquer sur quelle ligne tu as le probleme ?

    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Déjà merci pour la prise en charge.

    L'erreur est ligne 12
    Nom : AddressOf.png
Affichages : 229
Taille : 33,5 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    Public Function fuMsgBox_ChangeBtnText(sTitle As String, sMsg As String, sB1 As String, sB2 As String, sB3 As String)
    'Pour personnalisé le titre, le message et les boutons
    'Ici 3 boutons obligatoires.  On pourrait aller plus loin en faisant un select case pour le nombre de bouton,
    'Il faudrait alors ajuster le choix du type de message de base. Ici j'ai choisi vbAbortRetryIgnore parce que le but
    'était d'avoir 3 boutons.
      Const WH_CBT = 5
      Dim Reply As Integer
      'Ici on inscrit les nouveaux titres sur les boutons
      BtnTitle(1) = sB1: BtnTitle(2) = sB2: BtnTitle(3) = sB3
      'set up the hook
      msgHook = SetWindowsHookEx(WH_CBT, AddressOf MsgBoxTitleBtnProc, hInstance, GetCurrentThreadId())
      'call  function
      Reply = MsgBox(sMsg, vbAbortRetryIgnore + vbQuestion, sTitle)
      'free the hook
      UnhookWindowsHookEx msgHook
      'Selon le bouton choisi si on veut autre chose que les constantes Windows
      'On pourrait passer la réponse dans la fonction pour avoir autre chose que le titre des boutons.
      Select Case Reply
        Case vbAbort
           fuMsgBox_ChangeBtnText = sB1
        Case vbRetry
            fuMsgBox_ChangeBtnText = sB2
        Case vbIgnore
            fuMsgBox_ChangeBtnText = sB3
      End Select
      Erase BtnTitle
      'Test pour voir que les msgbox sont de retour
      MsgBox "Est-ce que les boutons sont de retour!!!", vbAbortRetryIgnore
     
    End Function
     
    Private Function MsgBoxTitleBtnProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
     
      Const HCBT_ACTIVATE = 5
      Const GW_CHILD = 5
      Const GW_HWNDNEXT = 2
      If nCode < 0 Then
        MsgBoxTitleBtnProc = CallNextHookEx(msgHook, nCode, wParam, lParam)
        Exit Function
      End If
        If nCode = HCBT_ACTIVATE Then
        Dim hWndChild As Long, hWndChildNext As Long
        'premier bouton: Abort button
        hWndChild = GetWindow(wParam, GW_CHILD)
        'changer pour sB1
        Call SetWindowText(hWndChild, BtnTitle(1))
        'deuxième bouton: Retry button
        hWndChildNext = GetWindow(hWndChild, GW_HWNDNEXT)
        hWndChild = hWndChildNext
        'changer pour sB2
        Call SetWindowText(hWndChild, BtnTitle(2))
        'Troisième bouton: Ignore
        hWndChildNext = GetWindow(hWndChild, GW_HWNDNEXT)
        hWndChild = hWndChildNext
        'changer pour sB3
        Call SetWindowText(hWndChild, BtnTitle(3))
     
      End If
      ' processing...
      MsgBoxTitleBtnProc = False
     
    End Function

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Apparement AdressOf est une function VB et non VBA.

    J'ai trouve ceci :

    How to get the address of a VBA function
    https://bytes.com/topic/access/answe...s-vba-function

    Personnellement quand j'ai eu ce probleme (j'avais besoin de beaucoup de lignes et le MsgBox standard coupe au alentours de 15), je me suis fais un formulaire Access qui simule le messageBox.

    C'est beaucoup plus facile a vivre.

    A+

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    Bonjour,
    Ta version Access 2013 est-elle 32 ou 64 bits ?

    CDLT

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    La Version est 32 bits

  7. #7
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    As-tu parcouru les msgbox étendues d'Arkham ?
    Ca ca marche toujours bien !
    https://arkham46.developpez.com/arti...utboxplus/doc/

    CDLT

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Ce n'est pas vraiment ce que je voulais implementer mais cela pourrait remplacer en effet.

    Et du coup je reste sur ma position que je ne comprends ce qui me manque pour faire fonctionner le code repris ici

    Merci quand même pour la proposition

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Bonjour,

    Pour les boîtes de message, c'est plutôt ce lien :
    https://arkham46.developpez.com/arti...sgboxplus/doc/

    Sinon comme micniv le propose, faire un dialogue avec un formulaire :
    https://arkham46.developpez.com/arti...ss/formdialog/

Discussions similaires

  1. invalid use of group function
    Par Chasseur d'étoiles dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/09/2008, 21h07
  2. UPDATE et AVG(): invalid use of group function
    Par ctobini dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/02/2008, 12h12
  3. error:invalid use of undefined type
    Par assif dans le forum C++
    Réponses: 2
    Dernier message: 25/10/2006, 21h11
  4. [VB6] Compile error: Invalide use of New Keyword
    Par ironik dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 16/05/2006, 12h40
  5. invalid use of group function
    Par sirbaldur dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/05/2006, 14h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo