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

Access Discussion :

vider presse-papiers à la fermeture


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 27
    Points
    27
    Par défaut vider presse-papiers à la fermeture
    Bonjour à tous,

    Voilà deux jours que je lis pas mal de post sur divers forums pour arriver à résoudre mon problème :

    J'ai créé un formulaire avec un bouton dessus qui permet de dupliquer un enregistrement. Je saisis mes données dans le nouvel enregistrement et qunad je ferme le formulaire, un message me dit : "Vous avez copié un grand nombre de données dans le presse-papiers ... voulez-vous enregistrez ces données oui ou non ?"

    Je voudrais supprimer ce message à la fermeture du formulaire en vidant le presse-papiers grâve à du VBA.
    J'ai testé avec les API Windows mais cela ne marche pas car je pense que je ne sais pas où mettre ma déclaration de fonctions (publiques / privée) : je débute ...

    Voilà ce que je tape dans le bouton qui ferme le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    '-- Déclaration des fonctions API
    Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function CloseClipboard Lib "user32" () As Long
    Private Declare Function EmptyClipboard Lib "user32" () As Long
     
    Private Sub btnFermeForm_Click()
        OpenClipboard 0 
        EmptyClipboard
        CloseClipboard
    End Sub
    Un message me dit que je peux mettre que des commentaires après un end sub. A ce moment-là, j'ai placé la déclaration de variables au début du module mais il me dit : "point d'entrée OpenClipboard d'un DLL introuvable dans user32".

    Je sais plus quoi faire. Merci pour votre réponse.

    Fred

  2. #2
    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
    bjr,

    quelle est la version de windows?

    msdn dit :
    Minimum operating systems : Windows 95, Windows NT 3.1

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 27
    Points
    27
    Par défaut
    Ma version est Windows 2000 et je travaille sur Access 2003.

  4. #4
    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
    bizarre sous windows 2000 ça marche bien

    si tu veux vérifier ce qu'il y a dans la dll, elle est dans :
    C:\winnt\system32\user32.dll

    tu l'ouvres avec quick view (s'il est sur ton pc) et tu regardes dans la partie export ; tu devrais y trouver OpenClipboard

    si pas quick view, alors tu peux ouvrir la dll avec wordpad et chercher le texte OpenClipboard

    s'il n'est pas dedans c'est pas gagné...

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 27
    Points
    27
    Par défaut
    Je viens de vérifier, il est bien dedans avec tous les autres ...

  6. #6
    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
    Citation Envoyé par fredpeca
    Je viens de vérifier, il est bien dedans avec tous les autres ...
    de plus en plus bizarre

    peut-être qu'il y a un autre fichier user32.dll quelque part qui entre en conflit?

    essaye de declarer en précisant le chemin complet de la dll pour tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Function OpenClipboard Lib "C:\winnt\system32\user32.dll" (ByVal hwnd As Long) As Long

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 27
    Points
    27
    Par défaut
    Excuse pour la lenteur, je suis au bureau.
    En fait, j'avais déjà tester en mettant le chemin.
    Par contre, je suis en réseau, cela a peutêtre une incidence. Mais je ne crois pas car je travaille en local ...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 27
    Points
    27
    Par défaut
    Si cela peut t'aider, j'ai vu dans ACCESS FAQ de ce site qu'il faut vérifier :

    "Allez dans un module (page où on écrit le code VBA). Dans la barre de menus d'ACCESS cliquez sur Outils puis Références. S'il manque une bibliothèque ou une DLL elle sera marquée comme tel dans la liste déroulante. Il suffit alors de la copier dans le répertoire "system32" de l'ordinateur et de taper : REGSVR32 C:\WINDOWS\SYSTEM32\maDLL.DLL ou REGSVR32 C:\WINDOWS\SYSTEM32\monOCX.OCX Le produit est alors enregistré dans la base de registres et reconnu par le système (sous NT il faut taper WINNT au lieu de WINDOWS)"

    Voilà ce qui est coché (existant) dans mon PC :
    - Visual Basic for Applications
    - MS Access 11.0 Object Library
    - OLE Automation
    - MS DAO 3.6 Object Library
    - MS ActiveX Data Objects 2.1 Library
    et c'est tout.

    Peut-être faut-il cocher autre chose ...

  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
    ces dll sont installées avec windows et sont largement utilisées par tous les programmes (y compris Access qui utilise déjà cette user32.dll)

    une déclaration de la fonction suffit, pas besoin de la référencer

    désolé j'ai pas plus d'idée...

  10. #10
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 93
    Points : 27
    Points
    27
    Par défaut
    A quelle endroit dois-je déclarer ma fonction ?
    A l'intérieur du sub ou sous option Compare Database ?

  11. #11
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    En entête de module, sous Option Compare ...

Discussions similaires

  1. [XL-2010] Problème vider presse papier
    Par Bobif dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/01/2015, 15h17
  2. [Lazarus] [Ubuntu] Effacement du presse papier à la fermeture de l'application
    Par pedestre dans le forum Lazarus
    Réponses: 0
    Dernier message: 11/12/2011, 15h43
  3. [XL-2007] vider le presse-papier en fermeture d'un classeur
    Par jff42 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/06/2011, 10h01
  4. VB EXCEL : éviter le message du presse papier à la fermeture
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/01/2006, 14h13
  5. [Système] Vider le Presse Papier
    Par babe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/09/2002, 17h46

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