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

VBA Access Discussion :

Erreur de compilation lors du passage d'access 32bit à 64bit [AC-365]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2015
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2015
    Messages : 63
    Points : 24
    Points
    24
    Par défaut Erreur de compilation lors du passage d'access 32bit à 64bit
    Bonjour à vous, j'ai beau chercher je ne trouve pas d'infos sur mon problème...
    Cela fait des années que j'utilise une bdd access que j'ai "réussit" jusqu'à présent à garder sous access 32 bit car dès que j'installe access 64 bit j'ai des erreurs de compilation que je n'arrive pas à corriger... Et là, nouvel ordi avec access 64 bit.. damned !

    Voici typiquement un exemple : Nom : Capture d’écran 2022-10-18 183716.png
Affichages : 503
Taille : 24,1 Ko

    Merci de votre aide si vous avez une idée...

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 602
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 602
    Points : 34 273
    Points
    34 273
    Par défaut
    Salut !

    Tu peux vérifier dans un premier temps les librairies qui seraient possiblement manquantes.

    Ensuite si tu décoches les librairies en question (en les remplacant le cas échéant par les bonnes librairies), ca devrait probablement résoudre ton soucis.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 421
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Comme la précisé Jean Philippe c'est un problème de librairies manquantes.

    Il ce trouve que visual basic application soit une librairie inscrite par défaut dans le projet VBA!

    Hors l'enmplacement de cette librairie sur le disque dur diffaire selon windows 32/64 et/ou Excel 32/64!

    Je t'invites à aller dans VBA=>menu=>outils=>références
    Et de décrocher les librairies manquait car les librairies 32 Bits sont toujours inscrite dans le projet VBA mais non pas de correspondance avec une vraie DLL mais sont en conflits avec celles existantes en 64 Bits !

    Si d'aventure ton application est destiné à être utilisé sur de systèmes mixte alors il faudra modifier ton code pour tenir compte de ce désagréable phénomènes !

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2015
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2015
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Bonjour à vous et merci pour vos conseils, je me doutais du problème mais ne suis pas à l'aise avec ce sujet...
    Si j'ai compris, il faut que les librairies cochées dans l'appli tournant sous access 32 soient les mêmes que sous 64.
    Voici une capture de l'appli sous 32, et du coup j'ai coché les mêmes librairies sous 64 mais cela ne change rien..
    Désolé je découvre ce domaine..
    PS : si l'appli tourne sous 64, je ne l'utiliserai plus sous 32.

    Merci!
    Nom : IMG-20221019-WA0003.jpg
Affichages : 454
Taille : 215,9 Ko

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 882
    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 882
    Points : 4 759
    Points
    4 759
    Par défaut
    Parcourir aussi le très bon tuto d'Arkham46 https://arkham46.developpez.com/arti...ice/vba64bits/
    "Always look at the bright side of life." Monty Python.

  6. #6
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Si j'ai compris, il faut que les librairies cochées dans l'appli tournant sous access 32 soient les mêmes que sous 64.
    En fait tu n'as pas bien compris. Le principe est de chercher celles qui manquent et de décocher. C'est écrit manquant. Tu pourras éventuellement chercher la bonne librairie à cocher en remplacement de celle manquante.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  7. #7
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 421
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    De toutes évidence tu n'a pas de librairie manquantes car les librairies activées ce trouvent toujours au début !

    Tu as bien ouvert l'application incriminés tu n'es pas sur un base vierge ?

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 007
    Points : 24 579
    Points
    24 579
    Par défaut
    Bonjour,

    Visiblement il n'y a rien de manquant, le problème est ailleurs.

    Tu modifies du code vba par vba ? Dans le cas contraire décoche le Ms VBA extensibility.

    Jusqu'à présent tu indiques des problèmes de compilation mais tu n'as montré aucun message qui l'indique.

    Et non lorsque on passe d'une 32 à 64bits avec des références standards (comme celles que tu utilises) cela ne nécessite pas d'y toucher.
    On vérifie effectivement que le mot "MANQUANT" n'apparaisse pas.

    Tu lances une compil et tu repères les lignes en rouge (normalement une affaire de déclaration d'API qu'il faut convertir en 64bits) et RIEN de plus.

    Montre-nous ces lignes pour qu'on puisse t'aider, dans le cas contraire contacte un marabout il pourra surement être aussi efficace que nous.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2015
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2015
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Bonjour,
    effectivement je n'avais pas compris l'histoire des librairies manquantes...

    Tu modifies du code vba par vba ? Dans le cas contraire décoche le Ms VBA extensibility.
    Oui enfin je crois pour une autre base... (que je n'ai pas encore testé sous 64)

    Tu as bien ouvert l'application incriminés tu n'es pas sur un base vierge ?
    non, c'est bien la bonne application

    Tu lances une compil et tu repères les lignes en rouge (normalement une affaire de déclaration d'API qu'il faut convertir en 64bits) et RIEN de plus.
    Si j'ai bien compris, voici les lignes en rouge et le message d'erreur :

    Nom : Capture d’écran 2022-10-20 183927.png
Affichages : 446
Taille : 37,0 Ko

    J'espère que ce dernier point suffira à résoudre le problème... en tout cas, merci à vous

  10. #10
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 421
    Points : 2 178
    Points
    2 178
    Par défaut
    tu veux qu'on corrige en utilisant Photoshop?

  11. #11
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2015
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2015
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Ah yes...
    désolé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     ' FONCTIONS API
    Declare Function SHGetSpecialFolderLocation _
        Lib "shell32" ( _
            ByVal hwnd As Long, _
            ByVal folderid As Long, _
            shidl As ITEMIDLIST) _
        As Long
     
    Declare Function SHGetPathFromIDList _
        Lib "shell32" _
        Alias "SHGetPathFromIDListA" ( _
            ByVal shidl As Long, _
            ByVal shPath As String) _
        As Long
    Merci

  12. #12
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 264
    Points : 6 563
    Points
    6 563
    Par défaut
    Salut
    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
    Option Explicit
    #If VBA7 Then
    Public Declare PtrSafe Function SHGetSpecialFolderLocation _
                             Lib "shell32" (ByVal hwnd As LongPtr, _
                                            ByVal nFolder As Long, ppidl As LongPtr) As LongPtr
    Public Declare PtrSafe Function SHGetPathFromIDList _
                             Lib "shell32" Alias "SHGetPathFromIDListA" _
                                (ByVal pidl As LongPtr, ByVal pszPath As String) As LongPtr
    #Else
    Public Declare Function SHGetSpecialFolderLocation _
                             Lib "shell32" (ByVal hwnd As Long, _
                                            ByVal nFolder As Long, ppidl As Long) As Long
     
    Public Declare Function SHGetPathFromIDList _
                             Lib "shell32" Alias "SHGetPathFromIDListA" _
                                 (ByVal pidl As Long, ByVal pszPath As String) As Long
    #End If
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  13. #13
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2015
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2015
    Messages : 63
    Points : 24
    Points
    24
    Par défaut
    Hey! ça marche!! Merci à vous.

    (Il faudrait que je comprenne pourquoi un jour..)

  14. #14
    Membre chevronné Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 421
    Points : 2 178
    Points
    2 178
    Par défaut
    Bonjour,
    Les libraires sont développés en C++.

    En 32 Bits un numérique long devient un integer en 64 Bits soit dans les 2 cas 4 Octets. Ça c'est facile à comprendre 64/2=32

    En revanche PtrSafe et LongPtr c'est plus compliqué !
    Ici nous avons à faire à des pointeurs ce qui signifie que nous faisons référence un un objet qui ce trouve à une adresse mémoire bien défini.

    #If #Else #En If
    Sont de directives de compilation ??
    Avant chaque exécution de macro un compilateur convertit le texte de la macro en information intelligibles par l'ordinateur ces directives de compilation aiguilles le compilateur vers tel ou tel ligne de code à prendre en compte !

    Si VBA6 n'utilise pas les pointeurs VBA7les utises d'où le #If VBA7

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2019] Erreur compilation lors de migration de Access 10 à Access 16
    Par fevec dans le forum VBA Access
    Réponses: 8
    Dernier message: 11/10/2019, 20h59
  2. Erreur de compilation lors d'appel d'autre classe
    Par DevLib dans le forum Débuter avec Java
    Réponses: 14
    Dernier message: 28/07/2011, 11h26
  3. [EJB3] Erreur de compilation lors de l'ajout des annotations
    Par rabebIF5 dans le forum Java EE
    Réponses: 4
    Dernier message: 05/04/2009, 19h40
  4. Réponses: 2
    Dernier message: 09/11/2005, 21h43

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