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 :

AC 2007 intégrer des images dans un état


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    commercial
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut AC 2007 intégrer des images dans un état
    *BONJOUR*
    Axiome de départ :
    J’ai certaines connaissance sur Access somme toute assez faibles et j’ai donc besoin d’un peu (ou beaucoup) d’aide pour ce projet.
    J’ai pas mal regardé ce qui c’est dit sur le sujet, il me reste à creuser un peu plus l’article de Claude Leloup « Stockez les images statiques de vos formulaires et états Access hors de la base de données »

    Le but pour moi est de créer un catalogue de pièces. La base de donnée est existante (produit commercial Sage) et j’ai juste récupéré deux tables (en faisant un lien vers une autre base de données) pour créer une autre table qui va me permettre de créer et mettre à jour ce catalogue.
    Cette nouvelle base de données est totalement indépendante de la base de données principale, et n’est pas sujette aux éventuelles mises à jour de chez Sage.
    Je passe donc pour cela par des requêtes création et ajout de table qui me génère ma table catalogue, par laquelle j’édite un état (catalogue final).

    Les images auront le nom de la référence de la pièce à représenter (clé principale). Toutes les images seront dans un unique dossier qui sera lui-même dans le dossier de la base de données. Je pense que cela est faisable de récupérer toutes ces images dans une table et de les faires correspondre (via la requete qui établie mon état donc mon catalogue) puisque les références seront identiques.

    Mon problème est que le nombre de pièce évolue, que le catalogue est composé de deux tables (articles et nomenclatures (ensemble de pièces)) et je suis donc obligé, afin d’être à jour pour le catalogue, de refaire les créations et ajout de table à chaque édition de catalogue (mensuel).

    Globalement tout est crée. Le catalogue est prêt il me manque juste l’insertion de l’image en face de ma référence de pièce…..
    Il reste donc à gérer l’affichage des images dans les états (avec la possibilité d’image blank).

    Quelqu’un peut il me donner un coup de main ?

    D’avance merci
    Emmanuel

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,
    Normalement voici comment on procède :

    1) créer un contrôle image dans la zone de détail de l'état
    2) dans l'évènement "sur formatage" insérer le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Image1.Picture = chemin & nomdelimage
    Ici, à chaque changement d'enregistrement, l'évènement Sur formatage est invoqué, on attribue à Picture, qui est la propriété qui contient le nom du fichier image, le nouveau chemin et nom de fichier image.

    Il reste pour toi à déterminer :
    1) le chemin
    2) le nom du fichier par rapport à l'enregistrement.

    Pour que cela fonctionne il faut que chemin & nomdelimage soit égal au chemin valide vers un fichier de type image reconnu par ACCESS (jpg, jpeg, png, bmp...)

    Si tout est bien fait, la nomenclature de la pièce devrait déterminer le nom, à moins que tu es déjà un champ qui le contient.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour à vous deux... et les autres, s'il en est,

    Jette aussi un œil ici : http://claudeleloup.developpez.com/t...ic-ploc/#LII-A.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    commercial
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci Loufab pour la réponse

    j'ai commencé et j'affiche uniquement la première image du dossier...??

    Quand tu dis :

    "Il reste pour toi à déterminer :
    1) le chemin
    2) le nom du fichier par rapport à l'enregistrement.

    Pour que cela fonctionne il faut que chemin & nomdelimage soit égal au chemin valide vers un fichier de type image reconnu par ACCESS (jpg, jpeg, png, bmp...)
    Si tout est bien fait, la nomenclature de la pièce devrait déterminer le nom, à moins que tu es déjà un champ qui le contient."
    je pense que mon problème vient de là. De plus je me suis aperçu que mes références de pièces contiennent des "/" dans leur désignation. Ce caractère est autorisé dans une base de donnée mais pas pour nommer un fichier Windows.... d'ou un problème de nom de la pièce. Une astuce?
    Si je pointe le premier fichier (la première image) le formatage va déterminer seul tout les autres et les placer aux bon endroits?

    d'avance merci

    Emmanuel

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Dans ton fichier tu utilises un caractère de substitution qui est valide et que tu n'utilises pas déjà dans tes références. Par exemple _

    Dans l'appel du fichier au lieu de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Image1.Picture = chemin & me.reference & ".JPG"
    tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Image1.Picture = chemin & replace(me.reference ,"/","_") & ".JPG"
    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Futur Membre du Club
    Homme Profil pro
    commercial
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour Loufab

    Quand je dis

    "Globalement tout est crée. Le catalogue est prêt il me manque juste l’insertion de l’image en face de ma référence de pièce…..
    Il reste donc à gérer l’affichage des images dans les états (avec la possibilité d’image blank)."

    sauf toute la gestion de la partie image....il n'existe aucune table ou autre qui gère cela.... les voila mes limites.....

    j'ai donc bien crée le contrôle image et inséré le code dans l’événement "sur formatage" .
    Si dans les propriétés de l'image je prends la première, elle s'affiche sur toutes les références. si cette donnée reste vide rien ne s'affiche.

    Une interrogation et incompréhension pour moi. comment la base peut elle "assembler" seule l'image (le nom) avec la référence de ma pièce (en l’occurrence le même nom avec l'astuce du changement de caractère).
    Je dois créer quelque chose dans ma base pour gérer cela, non?
    j'ai pour l'instant environ 1200 articles (donc références et par extension futures images).....

    Au passage cela est impressionnant ce que l'on peut trouver dans ce forum, je suis bluffé....

    d'avance merci

    Emmanuel

  7. #7
    Futur Membre du Club
    Homme Profil pro
    commercial
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Loufab
    je me suis remis dans le didacticiel de Morgan Billy : intégration d'images dans les formulaires continus.

    Il me semble impératif de créer un champ (texte) dans ma table article qui va reprendre le chemin d’accès de mon image. Par contre quid quand je refais une MAJ et que je recrée ma table avec ma requête création, je perds tout..
    donc il vaudrait mieux créer une table image avec la référence et le chemin et la lier via une requête pour générer l’état final (catalogue).
    dans le vrai ou complètement à coté de la plaque.

    Emmanuel

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    L'astuce, pour éviter de créer un champ supplémentaire, et donc de la saisie, c'est d'utiliser la référence unique de la pièce pour nommer l'image.

    Exemple :
    Ta pièce porte la référence SOC125/4548/B8
    Ton image portera le nom SOC125_4548_B8.jpg

    Pour la détection d'existence tu peux employer un simple dir() comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    dim nomimage as string
    nomimage = replace(me.reference ,"/","_") & ".JPG"
     
    If dir(chemin & nomimage) = "" then
       Me.Image1.Picture = chemin & "blank.JPG"
    else
      Me.Image1.Picture = chemin & nomimage
    endif
    L'état fera le reste seul.

    Attention avec le tuto sur le formulaire ça n'a rien à voir.
    blank.jpg est un fichier qui doit exister dans le répertoire.

    SURTOUT PAS DE CHEMIN EN DUR DANS LES TABLES !!!
    Tu fais comment lorsque le chemin change ?
    Le chemin doit être un paramètre soit écrit dans une constante globale soit une valeur stockée (fichier ini, table paramètre).

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Futur Membre du Club
    Homme Profil pro
    commercial
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour Loufab

    D’accord avec toi pour l’aspect changement de chemin même si je ne saisis pas toutes les subtilités de la suite (mais c’est un autre débat).

    Il me semblait avoir vu quelque part (je crois dans quelque chose de Hervé Inisan que cette gestion d’un changement de chemin n’était pas compliquée (peut etre plus pour moi))

    Si je suis bien, le nouveau code annule et remplace l’ancien code dans la zone de détail de l’état sur l’événement formatage.

    La question du novice un peu boulet…Quand tu écris
    « Pour que cela fonctionne il faut que chemin & nomdelimage soit égal au chemin valide vers un fichier de type image reconnu par ACCESS (jpg, jpeg, png, bmp...)»

    Il faut donc remplacer dans les lignes de codes « chemin & nomdelimage » (dans le dernier code « chemin & nomimage ») par le chemin valide pour accéder au dossier qui contient les images ?.

    J’ai déjà essayé cela et ça ne fonctionne pas (d’où ma question).
    De plus si on change dans le code, le chemin pourquoi pas également le nomimage ?
    Mais dans ce cas là quel nom choisir ?
    Le premier du dossier ?

    d'avance merci

    Emmanuel

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Je comprend tes interrogation je vais tenter de t'expliquer pas à pas le déroulement :

    Le chemin d'accès aux fichiers images est par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = "c:\mes_images\"
    On le stocke dans une variable globale ou une constante car c'est une valeur qui ne bougera pas.

    Chaque fois que le report va préparer (formater) un enregistrement (l'info d'1 et 1 seule pièce) il va passer dans le Sur_formatage et exécuter les instructions.

    La première pièce fournira les données référence, qté en stock, prix unitaire...
    référence sera SAB789/4564/EB8

    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
     
    dim NomImageas string
    NomImage= replace(me.reference ,"/","_") & ".JPG"
    'après cette ligne NomImage contiendra "SAB789_4564_EB8.jpg"
     
    If dir(chemin & nomimage) = "" then
    'sur la ligne précédente il va demander si le fichier "c:\mes_images\SAB789_4564_EB8.jpg" existe
       'NON il n'existe pas
       Me.Image1.Picture = chemin & "blank.JPG"
       'l'image affichée sera "c:\mes_images\blank.jpg"
    else
       'OUI elle existe 
      Me.Image1.Picture = chemin & NomImage
      'l'image affichée sera "c:\mes_images\SAB789_4564_EB8.jpg"
    endif
    Au 2ème passage la pièce s'appelle XYZ9878987/456
    nomimage sera alors XYZ9878987_456.jpg
    ...

    Jusqu'à qu'il ait tout formaté.

    As-tu compris le fonctionnement ?

    Si tu n'as pas de correspondance entre image et référence de pièce, il faudra la faire.
    Une référence qui a un nom automatiquement transformable en nom d'image est plus simple à gérer (et vice-versa).

    Maintenant tu n'es pas obligé de suivre ce concept de référence = nom image, tu peux créer un champ texte et mettre le nom de l'image dedans, mais pas le chemin. Un chemin n'est pas fixe, ll peut évoluer dans le temps et l'espace.

    Cordialement,

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  11. #11
    Futur Membre du Club
    Homme Profil pro
    commercial
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci

    Oui j'ai compris le fonctionnement. j'essaie cela demain après midi.

    Emmanuel

  12. #12
    Futur Membre du Club
    Homme Profil pro
    commercial
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour Loufab

    Si j'ai compris "globalement" comment cela fonctionne, je ne vois pas trop où placer ces lignes de codes.
    Dans la fenêtre:
    Choix de générateur d'expression, de macro ou de codes

    J’aurais tendances à prendre codes mais c'est plutôt du pifomètre.

    Ensuite j'ai essayé de placer le code là dedans (en changeant "référence" en "code" pour coller à ma base de données) mais rien ne se passe.
    Je pense être très proche de la solution, mais je n’y suis pas encore….

    d'avance merci

    Emmanuel

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Dans Sur Formatage de la zone ou se trouve l'image, sélectionne ... puis code et tu places le code entre les 2 instructions (sub ... end sub)

    Pour tester il faut bien être en aperçu avant impression pas en mode affichage (icon Etat vert) ce mode ne joue pas le code.

    Sinon poste ta base avec un échantillon de données et l'état.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  14. #14
    Futur Membre du Club
    Homme Profil pro
    commercial
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : commercial

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ça Marche!!!

    encore merci pour tout, je cours après ce truc depuis un petit moment je suis donc super content.

    Merci, merci, merci


    Emmanuel

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

Discussions similaires

  1. [AC-2007] Afficher des images dans un état en fonction d'un champ
    Par Gostringer dans le forum IHM
    Réponses: 13
    Dernier message: 20/05/2014, 13h43
  2. Intégrer des images dans un document HTML
    Par taleb51 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 28/11/2013, 13h32
  3. [AC-2010] Afficher des images dans un état selon une condition
    Par Benez dans le forum VBA Access
    Réponses: 6
    Dernier message: 31/07/2012, 15h13
  4. Poids des images dans un état
    Par tajjorf dans le forum IHM
    Réponses: 3
    Dernier message: 31/07/2010, 16h14
  5. LYCOS ET MYSQL - Intégrer des images dans une base!
    Par archeo dans le forum Installation
    Réponses: 3
    Dernier message: 06/04/2004, 13h45

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