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

IHM Discussion :

Web browser et champ OLE


Sujet :

IHM

  1. #1
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut Web browser et champ OLE
    Bonjour à toutes et tous !

    Contexte :
    • 1 table T_SYSTEME_LOCAL contenant :
      • 1 champ Variable (texte court)
      • 1 champ Contenu (Objet OLE)

    • 1 table T_FOURNISSEURS avec un champ SiteWeb (texte court)
    • 1 formulaire F_FOURNISSEUR avec un contrôle Microsoft Web Browser


    Je voudrais afficher dans le contrôle web Browser la page html stockée dans la table T_SYSTEME_LOCAL dans l'enregistrement identifié par la variable SiteWebInconnu


    Merci d'avance pour vos retours !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Bonjour,

    un peu de lecture pour faire avancer les choses :
    https://arkham46.developpez.com/arti...b/?page=page_2

  3. #3
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 230
    Points : 5 595
    Points
    5 595
    Par défaut
    Bonjour,

    Personnellement je ne parviens pas à afficher dans un cadre WebBrowser une page html enregistrée dans un champ de type OLE.
    Ce qu'il m'est possible de faire c'est d'ouvrir dans un cadre WebBrowser une page html enregistrée en tant que fichier séparé quand une page inconnue est demandée.

    Cordialement.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Bonjour,

    un peu de lecture pour faire avancer les choses :
    https://arkham46.developpez.com/arti...b/?page=page_2
    Bonjour, et merci pour ces infos, même si elles n'apportent pas de solution à mon besoin.
    A vrai dire, j'arrive à faire fonctionner mon contrôle, mais je souhaitais stocker la page par défaut dans la base plutôt que séparément...
    Merci quand même d'avoir pris le temps de me répondre 🙂

    Bonne journée.

  5. #5
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Bonjour,

    Personnellement je ne parviens pas à afficher dans un cadre WebBrowser une page html enregistrée dans un champ de type OLE.
    Ce qu'il m'est possible de faire c'est d'ouvrir dans un cadre WebBrowser une page html enregistrée en tant que fichier séparé quand une page inconnue est demandée.

    Cordialement.
    Bonjour, et merci pour ta réponse 🙂

    Je sais faire de cette manière.
    Je voulais juste "encapsuler" la page dans la base plutôt que de la stocker à part.

    Bonne journée.

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Tu utilises des termes qui n'ont pas de signification pour nous, tu parles d'encapsuler une page html...
    puis de stocker par defaut dans la base.

    Tu veux quoi exactement ? Avoir le html sur ton disque ? avoir le html dans ta base ? avoir l'url ?


  7. #7
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Tu utilises des termes qui n'ont pas de signification pour nous, tu parles d'encapsuler une page html...
    puis de stocker par defaut dans la base.

    Tu veux quoi exactement ? Avoir le html sur ton disque ? avoir le html dans ta base ? avoir l'url ?

    Bonjour.

    Boule de cristal en panne... termes qui n'ont pas de signification pour vous...
    Au-delà du fait qu'au vu de ton pedigree ton incompréhension me surprenne, je trouve cette réponse peu courtoise...
    Peut-être qu'en lisant simplement sans ta boule de cristal tu trouverais les éléments de réponse...

    Donc, pour l'encapsulation : https://fr.wikipedia.org/wiki/Encaps...programmation)

    La simple lecture de ma question initiale finira de répondre à ton questionnement :
    Citation Envoyé par Le Sage
    Je voudrais afficher dans le contrôle web Browser la page html stockée dans la table T_SYSTEME_LOCAL dans l'enregistrement identifié par la variable SiteWebInconnu
    Je vais donc tenter d'être plus précis :
    Je souhaite stocker l'URL des sites fournisseurs dans un champ SiteWeb de la table T_FOURNISSEURS.
    Je souhaite, pour les enregistrement de ladite table dans lesquels ledit champ SiteWeb ne serait pas renseigné, afficher une page générique.
    Pour éviter tous les problèmes liés à la multiplication des fichiers annexes, je souhaite encapsuler ladite page générique, autrement dit la stocker directement dans la base de données.
    Le champ permettant ce type de stockage est de type OLE.
    Je souhaite donc pouvoir, lorsque le champ SiteWeb du fournisseur n'est pas renseigné, ouvrir dans le contrôle navigateur la page générique stockée dans mon champ OLE.

    En espérant avoir été cette fois suffisamment précis, bien cordialement,
    Eric.

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    OK,


    Est-ce la partie stockage de la page en objet OLE ou la récupération de l'objet pour l'injecter dans ton web browser qui pose soucis ?

    Si c'est envisageable, je suggère de stocker plus simplement le html en texte libre, de le recracher à la volée dans un fichier html, et de détruire le dit fichier une fois ton formulaire fermé, ou c'est aussi une solution que tu souhaites éviter ?
    Pour éviter tous les problèmes liés à la multiplication des fichiers annexes


    L'encapsulation du point de vue purement technique n'a aussi aucun sens, d'où ma remarque d'origine

  9. #9
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    OK,


    Est-ce la partie stockage de la page en objet OLE ou la récupération de l'objet pour l'injecter dans ton web browser qui pose soucis ?

    Si c'est envisageable, je suggère de stocker plus simplement le html en texte libre, de le recracher à la volée dans un fichier html, et de détruire le dit fichier une fois ton formulaire fermé, ou c'est aussi une solution que tu souhaites éviter ?




    L'encapsulation du point de vue purement technique n'a aussi aucun sens, d'où ma remarque d'origine
    Bonsoir Jean-Philippe, et merci pour ce retour.

    Le stockage de la page html dans un champ OLE se fait très bien.
    C'est la récupération de ladite page pour l'afficher dans le web browser que je ne parviens pas à réaliser.
    J'ai validé une version avec fichier stocké dans le même dossier que la base, mais je préférerais utiliser une page stockée directement dans la base.

    L'idée de pondre le contenu depuis VBA (créer la page à la volée) n'est pas bête du tout, et pas forcément compliquée à mettre en oeuvre (parce-que je suis à l'aise avec ça), mais faut avouer que c'est quand même alambiqué comme solution
    En tout cas, non seulement j'achète l'idée, mais je vais la concrétiser de ce pas car ce sera toujours mieux à mon sens que de la stocker et d'aller la chercher, au risque qu'elle ne soit détruite par erreur et du coup introuvable par le web browser.

    Quitte à paraître gourmand, je préfèrerais quand même ouvrir une page stockée dans la base, et avec un peu de chance, ça permettra à ceux qui sont moins à-l'aise avec l'écriture de fichiers texte en VBA de réaliser l'opération "à moindres frais".

    Encore merci pour ton idée

    Bonne soirée.

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Le stockage html est une solution a minima, car les subtilités d'images et autre javascript poseront problème (on parle ici de html "pur"), donc il faut espérer que ta page par défaut soit "simple"

    Sinon pour la partie lecture, tu peux y aller par test/fail, mais sinon en stockant l'objet dans un variant, et de voir le type qui t'es ressorti, tu peux forcer le bon type de variable avant que ca soit exploitable...

  11. #11
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Sitôt dit, et au cas où ça intéresserait quelqu'un :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub GenererPageSiteIndisponible()    
        Dim strTab1 As String, strTab2 As String
        Dim strFichier As String, strHtml As String
     
        strTab1 = vbTab ' Tabulation simple
        strTab2 = vbTab & vbTab ' Tabulation double
        strFichier = CurrentProject.Path & "\site-inconnu.html" ' Nom du fichier à enregistrer dans le dossier de la base active.
     
        If Len(Dir(strFichier)) > 0 Then Exit Sub ' Si le fichier existe déjà, abandonner
     
        ' Création du contenu de la page
        strHtml = _
            "<html>" & vbCrLf & _
                strTab1 & "<header>" & vbCrLf & _
                strTab1 & "</header>" & vbCrLf & _
                strTab1 & "<body style=""text-align:center"">" & vbCrLf & _
                    strTab2 & "<p>&nbsp;</p>" & vbCrLf & _
                    strTab2 & "<p>&nbsp;</p>" & vbCrLf & _
                    strTab2 & "<h1>Page web indisponible</h1>" & vbCrLf & _
                    strTab2 & "<h2>Aucun site web n'a &eacute;t&eacute; d&eacute;fini pour ce fournisseur</h2>" & vbCrLf & _
                    strTab2 & "<p>&nbsp;</p>" & vbCrLf & _
                    strTab2 & "<p>Renseigner le champ [<strong>Site web</strong>] de l'onglet ⌈<strong>Coordonn&eacute;es</strong>⌉ de la fiche fournisseur.</p>" & vbCrLf & _
                strTab1 & "</body>" & vbCrLf & _
            "</html>"
     
        ' Création du fichier (ou remplacement s'il existe déjà)
        Open strFichier For Output As #1
        Print #1, strHtml
        Close #1
    End Sub
     
     
     
     
    Sub DetruirePageSiteIndisponible()
        Dim strFichier As String
     
        strFichier = CurrentProject.Path & "\site-inconnu.html" ' Nom du fichier à détruire dans le dossier de la base active.
     
        On Error Resume Next ' Au cas où le fichier aurait déjà été supprimé
        Kill strFichier
    End Sub

  12. #12
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Le stockage html est une solution a minima, car les subtilités d'images et autre javascript poseront problème (on parle ici de html "pur"), donc il faut espérer que ta page par défaut soit "simple"

    Sinon pour la partie lecture, tu peux y aller par test/fail, mais sinon en stockant l'objet dans un variant, et de voir le type qui t'es ressorti, tu peux forcer le bon type de variable avant que ca soit exploitable...
    Merci, je vais tester ça, mais un autre problème continue de se poser : la méthode Navigate de MonNavigateur.Object attend une URL... du coup, à quoi ressemblerait une URL qui pointerait vers le contenu d'un champ OLE, ou vers la variable que tu évoques ?

  13. #13
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 354
    Points
    34 354
    Par défaut
    Je dirais simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentProject.Path & "\site-inconnu.html"

  14. #14
    Membre habitué Avatar de Le Sage
    Homme Profil pro
    Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Inscrit en
    Novembre 2009
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur Conseil en Bureautique et CMS, Développeur VBA, Power Query, Power Pivot
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 212
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Je dirais simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentProject.Path & "\site-inconnu.html"
    Euh...
    Ca c'est la méthode pour la version fichier externe, comme évoqué plus haut et mis en oeuvre dans le code que j'ai posté.
    Si la page est "embarquée", ça devrait plutôt ressembler à MonNavigateur.Object.Navigate MaVariableObjet

    Mais je commence à penser que générer la page "à la volée" reste la meilleure solution...

Discussions similaires

  1. [AC-2010] Zoom automatique dans un champ Web Browser
    Par lololebricoleur dans le forum VBA Access
    Réponses: 0
    Dernier message: 20/11/2013, 09h34
  2. [AC-2010] Modifier le zoom d'un champ Web browser
    Par lololebricoleur dans le forum VBA Access
    Réponses: 1
    Dernier message: 16/11/2013, 22h04
  3. web browser en java .. quel composant ?
    Par vdavid1982 dans le forum Composants
    Réponses: 3
    Dernier message: 22/10/2009, 16h08
  4. Web browser (Remplir des champs)
    Par dekidec dans le forum C#
    Réponses: 4
    Dernier message: 20/02/2008, 11h17
  5. Cherche composant Web Browser indépendant
    Par lancelot69 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 31/07/2002, 11h14

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