Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment faire pour afficher une image à partir d'un dossier dans un formulaire ou dans un rapport dans Access 2000

Ancien nº de publication de cet article : F210100
Pour vous procurer une version Microsoft Access 97 et versions antérieures de cet article, reportez-vous à l'article 148463.

Pour vous procurer une version Microsoft Access 2002 et Office Access 2003 de cet article, reportez-vous à l'article 285820.
Utilisateurs confirmés : exige de très bonnes compétences en programmation, en interopérabilité et dans le domaine multi-utilisateur.

Cet article s'applique à une base de données Microsoft Access (.mdb) et à un projet Microsoft Access (.adp).

Résumé
Parfois, il n'est pas pratique d'enregistrer des images dans une table Microsoft Access. Si vous possédez de nombreuses images ou si tous vos fichiers image sont volumineux, la taille du fichier de base de données Microsoft Access peut augmenter rapidement.

Cet article explique la procédure à suivre pour afficher des images dans un formulaire ou dans un rapport en spécifiant uniquement le chemin d'accès et le nom de fichier. Le nom de fichier est enregistré dans une table. Le chemin d'accès au fichier peut également être enregistré dans la table ou il peut être un chemin d'accès relatif. Cela dépend de l'emplacement de la base de données.
Plus d'informations
Microsoft fournit des exemples de programmation à des fins d'illustration uniquement, sans garantie explicite ou implicite. Ceci inclut, de manière non limitative, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques. L'exemple suivant explique la procédure à suivre pour afficher des images bitmap Windows dans un formulaire ou dans un état Access sans enregistrer les images dans une table Access. Même si cet exemple utilise des images bitmap (.bmp), vous pouvez également utiliser d'autres types d'image tels que .jpg, .pcx et .gif.

Création de la table pour enregistrer les chemins d'accès de l'image

  1. Ouvrez l'exemple de fichier de la base de données Access, Comptoirs.mdb ou l'exemple de fichier du projet Access, NorthwindCS.adp.
  2. Créez la table suivante dans Comptoirs.mdb ou dans NorthwindCS.adp. Dans Comptoirs.mdb :
       Table : tblImage   ----------------------------   Nom du champ : ImageID   Type de données : NuméroAuto   Indexé : Oui (pas de doublons)   Nom du champ : txtImageName   Type de données : Texte   Propriétés de la table : tblImage   --------------------------   CléPrimaire : ImageID					
    Dans NorthwindCS.adp :
       Table : tblImage   -----------------------   Nom de la colonne : ImageID   Type de données : Int   Autoriser les valeurs Null : Désactivé   Identité : Activée   Nom de la colonne : txtImageName   Type de données : varchar   Propriétés de la table : ImageTable   -------------------------------   Contrainte de la clé primaire : ImageID					
  3. Dans Comptoirs.mdb : Créez une image standard pour afficher lorsque l'image est introuvable dans la table ou si aucune image n'est présente pour un enregistrement.

    Pour cet exemple, utilisez une petite image appelée « NoPicture.BMP ». Vous pouvez utiliser un élément qui existe comme un logo de société. Vous pouvez également créer une nouvelle image à l'aide de Paint. Enregistrez le fichier à l'emplacement suivant :

    C:\Windows\NoPicture.bmp
  4. Dans Comptoirs.mdb : Ouvrez la table tblImage en mode Feuille de données, puis ajoutez le chemin d'accès et le nom d'un fichier bitmap à chaque enregistrement. Les exemples suivants affichent la façon dont les enregistrements peuvent s'afficher :
       C:\Windows\Circles.bmp   C:\Windows\Waves.bmp   C:\Windows\Tiles.bmp   C:\Windows\Bubbles.bmp					

Affichage des images dans un formulaire

  1. Créez le nouveau formulaire suivant en fonction de la table tblImage :
       Écran : frmImage   ----------------------   Légende : Formulaire d'image   Source : tblImage   Contrôle d'image   ---------------------------------   Nom : ImageFrame   Image : « C:\Windows\Circles.bmp »   Zone de texte   ----------------------   Nom : txtImageID   SourceContrôle : ImageID   Zone de texte   ---------------------------   Nom : txtImageName   SourceContrôle : txtImageName					
    REMARQUE : la propriété Picture du contrôle Image a été définie sur le nom de chemin d'accès de la première image. Le contrôle Image doit disposer d'une propriété Picture valide en mode Création. De plus, si vous ne souhaitez pas que le chemin d'accès s'affiche dans le formulaire, vous pouvez définir la propriété Visible du contrôle txtImageName sur False.

  2. : Dans le menu Affichage, cliquez sur Code, puis collez ou tapez le code suivant :
    Function setImagePath()    Dim strImagePath As String    On Error Goto PictureNotAvailable     strImagePath = Me.txtImageName    Me.ImageFrame.Picture = strImagePathExit Function    PictureNotAvailable:    strImagePath = "C:\Windows\NoPicture.BMP"    Me.ImageFrame.Picture = strImagePathEnd Function					
  3. : Définissez les événements OnCurrent et AfterUpdate sur = setImagePath ().
  4. : Ouvrez le formulaire Imageform en mode Formulaire. Notez que le formulaire affiche l'image bitmap correspondante pour chaque enregistrement.

Affichage des images dans un rapport

  1. Créez un nouveau rapport en mode Création basé sur la table tblImage.
  2. Ajoutez les contrôles suivants à la section « Détails » du rapport :
       Contrôle d'image   ---------------------------------   Nom : ImageFrame   Image : « C:\Windows\Circles.bmp »   Zone de texte   ----------------------   Nom : txtImageID   SourceContrôle : ImageID   Zone de texte   ---------------------------   Nom : txtImageName       SourceContrôle : txtImageName					
  3. Dans le menu Affichage, cliquez sur Code, puis collez ou tapez le code suivant :
    Function setImagePath()    Dim strImagePath As String    On Error Goto PictureNotAvailable    strImagePath = Me.txtImageName    Me.ImageFrame.Picture = strImagePath    Exit FunctionPictureNotAvailable:  strImagePath = "C:\Windows\NoPicture.BMP"  Me.ImageFrame.Picture = strImagePath  End Function					
  4. Définissez l'événement OnFormat de la section « Détails » du rapport sur = setImagePath (), puis enregistrez le rapport sous RptImage.
  5. Ouvrez le rapport RptImage en mode Aperçu avant impression. Notez que le rapport affiche l'image bitmap correspondante pour chaque enregistrement.

Enregistrement de l'image dans un chemin d'accès relatif

L'exemple précédent suppose que le chemin d'accès complet du fichier se trouve dans le champ txtImageName. Toutefois, vous souhaiterez peut-être que la table ne contienne que le nom de l'image tandis que le code détermine le chemin d'accès en fonction du dossier dans lequel se trouve la base de données actuelle. Dans ce cas, les images se trouvent toutes dans le même dossier que le fichier de base de données. Cette technique employant des chemins d'accès relatifs se révèle particulièrement utile avec les applications distribuées lorsque vous n'êtes pas certain de l'emplacement dans lequel l'utilisateur installera la base de données. Dans le code suivant, le chemin d'accès à la base de données actuelle est défini avec la propriété FullName. Le chemin d'accès est ensuite concaténé au nom de l'image.

Pour démontrer ce principe, apportez les modifications suivantes à l'exemple précédent :
  1. Supprimez les chemins d'accès de la table tblImage et laissez seulement les noms des fichiers bitmap.
  2. Placez les fichiers bitmap dans le même dossier que la base de données. Cela inclut l'image bitmap standard qui s'affiche lorsqu'il n'y a pas d'image pour un enregistrement particulier.
  3. Remplacez la fonction de l'exemple précédent par la fonction suivante.

    REMARQUE : CurrentProject.FullName qui renvoie au chemin d'accès complet du projet actuel fonctionne à la fois pour les bases de données Access et les projets Access.
    Function setImagePath()   Dim strImagePath As String   Dim strMDBPath As String   Dim intSlashLoc As String   On Error Goto PictureNotAvailable   'Obtain the full path of the current database or Access Project   strMDBPath = CurrentProject.FullName   'Find the location of the last backslash   intSlashLoc = InStrRev(strMDBPath, "\", Len(strMDBPath))   'Trim off the database name, leaving the path   'and append the name of the image file   strImagePath = Left(strMDBPath, intSlashLoc) & _   Me.txtImageName   'Set ImageFrame to the path of the image file   Me.ImageFrame.Picture = strImagePath   Exit FunctionPictureNotAvailable:  strImagePath = "NoPicture.BMP"  Me.ImageFrame.Picture = strImagePathEnd Function					
Références
Pour plus d'informations sur la définition des propriétés d'événement, cliquez sur Aide sur Microsoft Access dans le menu ? (Aide), tapez Evénement dans le Compagnon Office ou dans l'Aide intuitive, puis cliquez sur Rechercher pour afficher la rubrique correspondante.

Pour plus d'informations sur la propriété OleTypeAllowed, cliquez sur Aide sur Microsoft Access dans le menu ? (Aide), tapez oletypeallowed dans le Compagnon Office ou dans l'Aide intuitive, puis cliquez sur Rechercher pour afficher la rubrique correspondante.

Pour plus d'informations sur la propriété SourceDoc, cliquez sur Aide sur Microsoft Access dans le menu ? (Aide), tapez sourcedoc dans le Compagnon Office ou dans l'Aide intuitive, puis cliquez sur Rechercher pour afficher la rubrique correspondante.
link point
Propriétés

ID d'article : 210100 - Dernière mise à jour : 10/12/2006 01:35:20 - Révision : 3.2

  • Microsoft Access 2000 Standard Edition
  • kbdisplay kbgraphic kb32bitonly kb3rdpartynetclient kbdta kbhowto kbinterop kbofficeprog kbole kbprogramming kbvba KB210100
Commentaires