En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour vous proposer des contenus et services adaptés. Mentions légales.

Forum - Questions sur Access - Afficher photo dans un État


 

actif  Sujet n° 855

le 01/03/2022 : 20:30
par Deseyes

Anonyme

visiteur

Bonjour.

En effet ma question ne partait pas nouvelle, mais je n'ai pas eu la réponse satisfaisante.​​​​​​​ J'ai une base de données de gestion Scolaire. ou j'ai mis les photos dans dossier hors de la base. Pour éditer les bulletins , j'ai besoin d'afficher les photos . La table élèves qui est la source de l'état comporte bien évidemment le champ photo qui ne contient que les liens vers photos. Alors je suis passé par tous les moyens même y compris votre solution qui date de longtemps. Moi j'utilise Access 2016. Aidez moi. Ce sont mes premiers pas en Access et je vous assure que je galère depuis sur ce truc.

J'avais mis un champ indépendant  dans détail que j'ai nommé txtPhoto. Et sur  détail, dans événement puis au formatage j'ai saisi ce code:

Option compare Database

Option explicit

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

On Error Resume Next 

Me.Controls("txtPhoto"). Picture= Me.Controls("Photo"). Value 

End Sub 

Malheureusement je n'ai pas de résultat.

 

Ecrire à Deseyes
Poster une réponse Haut  

Réponse n° 1
--------
le 02/03/2022 : 15:54
par 3Stone

3Stone

Administrateur


Bonjour,

Citation : « Deseyes »

Alors je suis passé par tous les moyens même y compris votre solution qui date de longtemps.

Heu... laquelle ?  surprise

Pas de champ indépendant, il est inutile.

Un simple contrôle "image" (vérifier l'indication de l'info-bulle lors de la sélection). Lors de la création on te demande de sélectionner cette image... sélectionne un image "vide" par exemple ou n'importe quoi à la bonne taille.

Ensuite, comme dit, dans le Detail_Format, quelque chose comme :  

  Dim sPhoto AS String
  sPhoto = Me![CheminPhoto]
  
  If Dir(sPhoto) <> "" Then
    Me![Photo].Picture = sPhoto
  Else
    Me![Photo].Picture = "rien"
  End If

Ceci dit, personnellement, je préfère ne mettre que le numéro de la photo à la place du chemin complet.

  • Toutes les photos dans un répertoire "Photos"
  • Ce répertoire on le place dans le même répertoire que la base

Ensuite, lorsque l'on souhaite accéder à une photo, il suffit de récupérer le chemin d'accès  au répertoire photos par :  

Dim sPathPhoto as String

sPathPhoto = Application.CurrentProject.path & "\Photos\"

à cela, il suffit alors d'ajouter le nom de la photo (donc le numéro).

Cela fonctionnera toujours, même lorsque l'on déplace la base (avec son répertoire "photos")

Dis moi si tu y arrive, sinon revient !

Cordialement,

Pierre (3Stone)

Poster une réponse Haut  
Réponse n° 2
--------
le 25/04/2022 : 10:48
par Deseyes

Anonyme

visiteur

Bonjour Pierre. J'espère tu vas bien. Merci pour ta réponse aussi. Claire. Je m'excuse pour le temps écoulé. Je souffrais de la malaria. Ce-ci étant je voudrais dire que n'y arrive pas toujours. Voici ce que j'ai fait et qui ne marche pas.

Chemin de la base de données :

 C:UsersAdministrateurDesktop

Chemin du dossier contenant les photos :

C:UsersAdministrateurDesktopGpe_Scol_PaouflaPhotoBase

Exemple de chemin de la photo dans la table élève:

C:UsersAdministrateurDesktopGpe_Scol_PaouflaPhotoBase1.png

Nom du champ de la photo dans la table Élève:

Photo

Enfin, les photos sont numérotées 1;2;3 etc… dans le répertoire

Voici  le code que j'ai saisie

Option Compare Database

Option Explicit

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)

  Dim sPhoto As String

  Dim sPathPhoto As String

  sPathPhoto = Application.CurrentProject.path & "Gpe_Scol_PaouflaPhotoBase"

  sPhoto = Me![Photo]

  If Dir (sPhoto) <>"" Then

  Me![Photo].Picture = sPhoto

  Else

  Me![Photo].Picture = ""

  End If

  End Sub

Mais quand j'exécute il surligne  sPhoto = Me![Photo] avec le message: Microsoft ne retrouve le champ photo auquel il est fait référence dans votre expression

Ou bien je dois nommer le cadre de l'objet image que j'ai inséré ?

Poster une réponse Haut  
Réponse n° 3
--------
le 26/04/2022 : 15:41
par 3Stone

3Stone

Administrateur


Bonjour,

Citation :

sPathPhoto = Application.CurrentProject.path & "Gpe_Scol_PaouflaPhotoBase"

Heu... non, Application.CurrentProject.Path renvoie l'emplacement de la base Access (ton application) et je suppose que tu ne l'as pas possée sur le bureau... ?

Donc, sPathPhoto doit contenir le chemin vers le répertoire qui contient les photos.

Ensuite, dans ton état, le controle qui doit afficher porte un nom, disons cadrePhoto.

Dans ta table, tu as un champ (disons LaPhoto) qui contient le nom de la photo de la personne concernée.

Et donc, sPathPhoto & "" & LaPhoto doit contenir la chemin et la photo.

Dans l'état :

cadrePhoto.picture = sPathPhoto & "" & LaPhoto

doit alors afficher cette photo.

Pour voir ce que contiennent les différente variable, tu peux écrire plusieurs "Debug.print la_variable" pour visionner ce contenu (par Ctrl + G)

Si tu n'y arrive pas, tu peux m'envoyer ta base avec juste quelques données exemple via ce formulaire.

Cordialement,

Pierre (3stone)

Poster une réponse Haut  
Réponse n° 4
--------
le 27/04/2022 : 16:38
par 3Stone

3Stone

Administrateur


Bonjour,

Problème avec ton fichier joint, il est vide...

Pierre (3Stone)

Poster une réponse Haut  
Réponse n° 5
--------
le 09/05/2022 : 20:08
par 3Stone

3Stone

Administrateur


Bonjour,

Désolé, mais les fichiers (rar) étaient à nouveau vide angry

J'ai alors testé moi-même de m'envoyer un fichier et... il était vide également. blushcrying

Je ne sais pas où est le problème, mais j'ai créé un nouveau formulaire dédié à cela, testé plusieurs fois et tout va bien maintenant yes

Utilise donc ce formulaire-ci.

Désolé pour le contretemps...

Pierre (3Stone)

Poster une réponse Haut  
Réponse n° 6
--------
le 10/05/2022 : 22:13
par desyes

Anonyme

visiteur

Bonsoir Pierre. Puisse Dieu te récompenser pour pour ta disponibilité à aider ton prochain.

Il faut dire que le formulaire ne fonctionne pas après maintes reprises. Quand je mets un fichier rar il dit que c'est incompatible. Quand un en ZIP il dit compatible mais ne l'envoie pas. Alors, je ne sais que faire. 

Ne blessés bro

Poster une réponse Haut  
Réponse n° 7
--------
le 11/05/2022 : 01:09
par 3Stone

3Stone

Administrateur


Bonsoir,

Je viens de retester... et cela fonctionne parfaitement.

Mais, la taille du fichier est limitée à 3 MB !

Et n'utilise pas de nom à rallonge pour le fichier compacter.

Un simple "MaBase.zip" est suffisant laugh

Et le bouton de sélection ne peut pas être de couleur rouge après la sélection du fichier, si c'est le cas... trop gros, mauvais nom...

Cordialement,

Pierre (3Stone)

Poster une réponse Haut  
Réponse n° 8
--------
le 11/05/2022 : 01:39
par desyes

Anonyme

visiteur

T'es un génie.  Mon fichier compressé dépasse 3Mo.. demain je vais réduire encore et te revenir. Bonne nuit a toi

Poster une réponse Haut  
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message
Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter  
Catégories de discussion  Forum  



Vous êtes ici :   Accueil » Forum » Questions sur Access » Afficher photo dans un État