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 :

convertion string hypertexte


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Par défaut convertion string hypertexte
    bonjour ,
    est -t-il possible de convertir une chaîne de caractère comprenant une adresse mail en lien hypertexte ??

  2. #2
    Membre Expert Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Par défaut
    Il suffit d'utiliser l'API ShellExecute pour lancer un lien mailto.

    Déclaration de l'API :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Puis si l'adresse est dans le champ "xxx" un bouton "EnvoiMail" avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub EnvoiMail_Click()
     Dim URL As String
     URL = Me.xxx
     ShellExecute 0, "Open", "mailto:" & URL, 0, ".", vbNormalFocus
    End Sub
    Cordialement.

  3. #3
    Membre Expert Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Par défaut Autre solution
    Une autre solution est de modifier l’apparence du texte quand c’est une adresse mail, de gérer le curseur au survol du champ et de gérer par un message la possibilité d’éditer le champ si on ne veut pas envoyer de mail mais bien modifier l’adresse.
    Voici les codes nécessaires.
    Dans un formulaire où il y a un champ texte nommé « Courriel »

    1. Déclarations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" _
    (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
    Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
        (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
        ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    2. Fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function ChangeCursorToHand()
    Dim hCur
            hCur = LoadCursor(0, 32649) 'Code Main par exemple
     
            If (hCur > 0) Then
            SetCursor hCur
            End If
    End Function
    Pour gérer les événements relatifs au champ Courriel :
    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
    Private Sub Courriel_Click()
    If IsNull(Me.Courriel) = False And Me.Courriel Like "*@*" Then
        Msg = "Voulez-vous envoyer un mail à cette adresse?"    
        Style = vbYesNo + vbInformation + vbDefaultButton2    
        Response = MsgBox(Msg, Style)
            If Response = vbYes Then    ' L'utilisateur a choisi Oui.
            Dim URL As String
            URL = Me.Courriel
            ShellExecute 0, "Open", "mailto:" & URL, 0, ".", vbNormalFocus
            Exit Sub
            Else
            Exit Sub
            End If
    Else
        Exit Sub
    End If
    End Sub
     
    Private Sub Courriel_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Transformation du curseur en main lors du passage sur le champ
    If IsNull(Me.Courriel) = False And Me.Courriel Like "*@*" Then
    Call ChangeCursorToHand
    Else
    Exit Sub
    End If
    End Sub
     
    Private Sub Détail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Remettre le curseur par défaut en dehors du survol de l’adresse mail
    Screen.MousePointer = 0 'Curseur par défaut
    End Sub
    Et enfin pour afficher le texte d'une adresse en bleu et souligné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Form_Current()
    'Modifie l’apparence du texte si c’est une adresse mail
    If IsNull(Me.Courriel) = False And Me.Courriel Like "*@*" Then
    Me.Courriel.ForeColor = RGB(61, 61, 255)
    Me.Courriel.FontUnderline = True
    Else
    Me.Courriel.ForeColor = QBColor(0)
    Me.Courriel.FontUnderline = False
    End If
    End Sub

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    salut RobiPMS et bienvenu rominous41,

    Citation Envoyé par rominous41
    est -t-il possible de convertir une chaîne de caractère comprenant une adresse mail en lien hypertexte ??
    "comprenant" ou "constituant" une adresse mail?

    sans sortir l'artillerie lourde:

    si le champ est une adresse mail mais typé texte, pour le transformer en lien hypertexte:
    dans la source du formulaire il faut un champ "mymail":
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT mailtext & "#mailto:" & mailtext & "#" AS mymail, * FROM maTable;
    ajouter un controle pour le champ "mymail" et changer les propriétés:
    Is Hyperlink: Oui
    Afficher comme lien hypertext: Toujours

    éventuellement adapter le SQL pour extraire l'email dans le cas "comprenant".

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 129
    Par défaut
    oui ma chaîne de caractère constitue en elle même l'adresse mail

Discussions similaires

  1. [c#] convertion string et entier
    Par zidenne dans le forum Windows Forms
    Réponses: 3
    Dernier message: 20/09/2006, 11h31
  2. Convertion string en char*
    Par krolineeee dans le forum C++
    Réponses: 9
    Dernier message: 24/07/2006, 14h35
  3. Réponses: 2
    Dernier message: 06/12/2005, 12h01
  4. Convertion string => entier
    Par en_gel_ho dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/06/2005, 12h59
  5. convertion string --> long
    Par JulienT dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2005, 23h05

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