Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/05/2011, 10h41   #1
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
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 ??
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 14h32   #2
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 279
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

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

Informations forums :
Inscription : octobre 2007
Messages : 279
Points : 478
Points : 478
Il suffit d'utiliser l'API ShellExecute pour lancer un lien mailto.

Déclaration de l'API :
Code :
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 :
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.
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 13h38   #3
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 279
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

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

Informations forums :
Inscription : octobre 2007
Messages : 279
Points : 478
Points : 478
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 :
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 :
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 :
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 :
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
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2011, 15h07   #4
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
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 644
Points : 3 895
Points : 3 895
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 :
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".
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 11h09   #5
Nouveau Membre du Club
 
Inscription : mai 2009
Messages : 124
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 124
Points : 26
Points : 26
oui ma chaîne de caractère constitue en elle même l'adresse mail
rominous41 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h50.


 
 
 
 
Partenaires

Hébergement Web