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 PTRSAFE + Declare


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2022
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Erreur PTRSAFE + Declare
    Bonjour à tous,
    Je suis assez désemparé face à mon souci...

    J'ai changé de pc et je n'arrive plus à ouvrir mon fichier access sur lequel je dois travailler
    En effet voici le message d'erreur :

    Nom : Sans titre.png
Affichages : 403
Taille : 13,6 Ko

    Malheureusement je ne suis pas du tout programmateur et je suis donc dans une impasse.

    Un idée de comment je pourrais m'en sortir?

    Merci d'avance et merci beaucoup !

  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 593
    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 593
    Points : 34 257
    Points
    34 257
    Par défaut
    Salut,

    tu peux lire cette documentation sur le sujet, les exemples de syntaxes sont simples à adapter
    https://arkham46.developpez.com/arti...ice/vba64bits/
    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
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2022
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Salut,
    Merci pour ta réponse rapide !

    Malheureusement j'ai tout lu mais c'est du chinois pour moi... je ne m'y connais vraiment pas...
    J'ai réussi à ouvrir la base de donnée, et là 21 fenêtres de codes s'ouvrent.
    J'ai tenté de rajouter le PtrSafe et de remplacer le Long mais forcement rien n'y fait.

    Suis perdu perdu...

  4. #4
    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 593
    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 593
    Points : 34 257
    Points
    34 257
    Par défaut
    salut,

    le fichier access, si ce n'est pas toi qui l'a codé, qui l'a fait ? qui fait le support de ton application ? l'as tu contacté ?
    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

  5. #5
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2022
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    C'est une société Lithuanienne qui l'a créé mais qui n'existe plus malheureusement

  6. #6
    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 593
    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 593
    Points : 34 257
    Points
    34 257
    Par défaut
    Tu choisis avec soin des partenaires

    bon dans ce cas, peux tu nous montrer les lignes de Declare qui posent soucis, parce que cela ne suffira pas
    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

  7. #7
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2022
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Héhé, il sont gentils pourtant

    Alors j'ai du rouge ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Compare Database
    Option Explicit
      
    Global Const SW_HIDE = 0
    Global Const SW_SHOWNORMAL = 1
    Global Const SW_SHOWMINIMIZED = 2
    Global Const SW_SHOWMAXIMIZED = 3
    Declare Function IsZoomed Lib "User32" (ByVal Hwnd As Long) As Long
    Private Declare Function apiShowWindow Lib "User32" _
    Alias "ShowWindow" (ByVal Hwnd As Long, _
    ByVal nCmdShow As Long) As Long
    Ensuite Ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Option Compare Database
    
    
    Private Declare Function GetSystemMetrics Lib "User32" (ByVal Index As Long) As Long
    
    
    Private Const SM_CXSCREEN As Long = 0
    Private Const SM_CYSCREEN As Long = 1
    Puis ici :

    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 Compare Database
    Option Explicit
    Type RECT_Type
    left As Long
    top As Long
    right As Long
    bottom As Long
    End Type
    'The following declare statements are case sensitive.
    Declare Function GetActiveWindow Lib "User32" () As Long
    Declare Function GetDesktopWindow Lib "User32" () As Long
    Declare Sub GetWindowRect Lib "User32" (ByVal Hwnd As Long, _
    lpRect As RECT_Type)
    Declare Function GetDC Lib "User32" (ByVal Hwnd As Long) As Long
    Declare Function CreateCompatibleDC Lib "Gdi32" (ByVal hdc As Long) _
    As Long
    Declare Function CreateCompatibleBitmap Lib "Gdi32" (ByVal hdc _
    Après il y a d'autres endroits encore... mais j'imagine que c'est sur le même principe

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    mettre ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Declare PtrSafe Function IsZoomed Lib "user32" Alias "IsZoomed" (ByVal hwnd As LongPtr) As Long
    Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Long
    à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Declare Function IsZoomed Lib "User32" (ByVal Hwnd As Long) As Long
    Private Declare Function apiShowWindow Lib "User32"_
    Alias "ShowWindow" (ByVal Hwnd As Long, _
    ByVal nCmdShow As Long) As Long
    idem pour celui ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare PtrSafe Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
    à la place de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Function GetSystemMetrics Lib "User32" (ByVal Index As Long) As Long
    et celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Declare PtrSafe Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As LongPtr
    Declare PtrSafe Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As LongPtr
    Declare PtrSafe Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As LongPtr, lpRect As RECT) As Long
    Declare PtrSafe Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As LongPtr) As LongPtr
    Declare PtrSafe Function CreateCompatibleDC Lib "gdi32" Alias "CreateCompatibleDC" (ByVal hdc As LongPtr) As LongPtr
    Declare PtrSafe Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As LongPtr
    Declare PtrSafe Function CreateCompatibleBitmap Lib "gdi32" Alias "CreateCompatibleBitmap" (ByVal hdc As LongPtr, ByVal nWidth As Long, ByVal nHeight As Long) As LongPtr
    à la place de (attention au code incomplet pour les 2 dernières API):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Declare Function GetActiveWindow Lib "User32" () As Long
    Declare Function GetDesktopWindow Lib "User32" () As Long
    Declare Sub GetWindowRect Lib "User32" (ByVal Hwnd As Long, _
    lpRect As RECT_Type)
    Declare Function GetDC Lib "User32" (ByVal Hwnd As Long) As Long
    Declare Function CreateCompatibleDC Lib "Gdi32" (ByVal hdc As Long) _
    As Long
    Declare Function CreateCompatibleBitmap Lib "Gdi32" (ByVal hdc _
    Après il y a d'autres endroits encore... mais j'imagine que c'est sur le même principe
    certes, mais il faudra quand même poster tout le code, sauf si tu fais toi-même les recherches dans ce fichier fourni pas Microsoft:Win32API_PtrSafe.zip
    il suffit de faire une recherche sur le nom de l'API et copier le code trouvé
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Candidat au Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2022
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    BOnjour,

    TOUT SIMPLEMENT GENIAL !!!

    Ca refonctionne correctement !

    Merci beaucoup en tout cas, c'est peut être pas grand chose pour vous mais pour moi c'est énorme !
    Bonne journée !

    Merci encore !


  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    si cela fonctionne, n'oublie pas de clore la discussion (bouton en bas du post)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. Erreur PtrSafe Excel
    Par Jean Porte dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2014, 10h56
  2. identification d'erreur en declaration de variables
    Par saida29 dans le forum Fortran
    Réponses: 1
    Dernier message: 14/06/2013, 19h03
  3. Erreur "Must declare the scalar variable "@id"
    Par Devlin111 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 15/03/2012, 12h26
  4. erreur à la declaration
    Par BernardT dans le forum C++
    Réponses: 3
    Dernier message: 24/01/2007, 20h17
  5. Erreur de declaration (partie 2)
    Par vdumont dans le forum C++
    Réponses: 9
    Dernier message: 17/03/2006, 20h34

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