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 :

Créer un bouton via des images


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 492
    Points : 166
    Points
    166
    Par défaut Créer un bouton via des images
    Bonjour,

    J'aimerais créer des boutons personnalisés via des images

    • image1 = bouton de base
    • image2 = bouton au survol
    • image3 = bouton au clic


    Est-ce possible ?

    Il faudrait aussi que la souris change au survol des images (comme sur un bouton normal)

    Mes questions :
    1. Comme créer le bouton avec les différentes options ?
    2. Où placer les images (le top serait dans une table avec pièces jointes) ?

    Merci d'avance pour vos lumières

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 380
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 380
    Points : 2 007
    Points
    2 007
    Par défaut
    Salut,

    Sauf erreur de ma part, les boutons ont une propriété Picture, qui représente l'image affichée sur le bouton.
    Quand à assigner une image par programmation, le mieux est peut-être d'utiliser des contrôles Image, qui ont aussi une propriété Picture, et d'assigner l'un à l'autre.
    Ainsi les images sont stockées dans le formulaire.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        '// assigne une image
    Set Commande0.Picture = Image1.Picture
     
        '// Supprime une image
    Set Commande0.Picture = Nothing
    Note:
    Bien que l'on puisse stocker des images dans une BDD, et que l'on puisse lier les contrôles d'un formulaire à une table ou requête retournant des images (comme n'importe quel contrôle en fait), ce n'est pas vraiment conseillé, car il y a des contraintes:
    - D'une part les images prennent beaucoup de place
    - Les images enregistrées en tant que pièce jointe en prennent moins, pour pouvoir les charger, il faut d'abord les extraire sur le disque.

    A toi de voir ce qui te convient en fonction de la taille / quantité des images, et si les contraintes sont acceptables ou pas.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 492
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    La suite...

    J'ai intégré trois images à mon formulaire [Visible = false]

    • Image9 = bouton01.bmp
    • Image7 = bouton02.bmp
    • Image8 = bouton03.bmp

    J'ai créé un bouton [Commande3] qui affiche l'image bouton01.bmp

    Sur ce bouton [Sur souris déplacée], je mets le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Me.Commande3.Picture <> Image7.Picture Then Me.Commande3.Picture = Image7.Picture
    Et là chose étrange :
    • Lors du premier lancement, juste après avoir défini les images, cela fonctionne nickel
    • Mais lorsque je ferme le fichier Access et que je le relance, j'ai le message suivant : (pour que cela refonctionne une fois, je dois rééditer les images...)

    Erreur exécution '2220'
    Microsoft Office Access ne peur ouvrir le fichier << bouton02.bmp >>".
    Une idée ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 492
    Points : 166
    Points
    166
    Par défaut
    Je dois "peut-être" charger les images au démarrage du formulaire, mais comment accéder aux images intégrées dans ce formulaire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set image7 = LoadPicture(...
    J'ai essayé ceci, mais toujours le même problème d'erreur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Image7 = LoadPicture(Image7.Picture)
    Set Image7.PictureData = LoadPicture(Image7.Picture)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 492
    Points : 166
    Points
    166
    Par défaut
    Bon et bien j'ai utilisé le système D...

    3 images et un bouton transparent juste au dessus avec des .Visible = ...

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 817
    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 817
    Points : 14 911
    Points
    14 911
    Par défaut
    bonjouir,
    Citation Envoyé par Crachover Voir le message
    Bon et bien j'ai utilisé le système D...

    3 images et un bouton transparent juste au dessus avec des .Visible = ...
    pas "système D", puisque c'est dans l'esprit de l'exemple donné dans l'aide en ligne de learn.Microsoft pour la propriété PictureData
    donc:

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 380
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 380
    Points : 2 007
    Points
    2 007
    Par défaut
    Pourquoi passes-tu par LoadPicture ?

    Sauf si tes images sont 100% dynamiques, tu n'as aucune raison de faire cela.
    Charge une image dans ton formulaire en mode création, enregistre le et Basta !
    Nom : Capture d'écran 2024-05-04 224749.png
Affichages : 121
Taille : 15,1 Ko
    pourquoi simple quand on peut faire compliqué ...

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 492
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    J'ai effectivement oublié les .LoadPicture... pour la suite

    J'ai cependant encore une question... Comment faire pour détecter que le bouton gauche de la souris est enfoncé ?

    J'ai essayé ceci, mais non...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Me.Commande18.OnMouseDown.Right Then...
    If Me.Commande18.OnMouseDown = 0 Then...
    If Me.Commande18.OnMouseDown = True Then...
    Une idée ?

    Ps : Je sais qu'il y a l'événement sur souris appuyée, mais j'ai besoin de faire un test sur souris déplacée.

    Et tant que j'y suis... Comme détecter par exemple un :
    • CTRL + A
    • SHIFT + B
    • SHIFT + ENTER
    • CTRL + SOURIS CLIC DROIT
    • ALT + CTRL + SOURIS CLIC DROIT
    • etc...

Discussions similaires

  1. message d'alerte via des images
    Par nrdz83 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/06/2008, 13h32
  2. remplacer les boutons par des images
    Par sotfage dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 18/06/2007, 17h41
  3. Problème de création de bord de cadre via des images
    Par bilou95 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/04/2007, 11h19
  4. Personnaliser des boutons avec des images
    Par rar77 dans le forum WinDev
    Réponses: 1
    Dernier message: 30/08/2006, 17h56
  5. Insertion des boutons et des images dans une JTable
    Par anouar dans le forum Composants
    Réponses: 2
    Dernier message: 17/11/2005, 20h23

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