OVH Cloud OVH Cloud

Utilisation incorrecte de la propriètè

10 réponses
Avatar
jg1
Bonjour,

Sur mon formulaire j'ai une Zone de texte "Email" et un contr=F4le
"btnEmail"

Dans un module le code suivant :

Sub Email()
Dim HLK As Hyperlink
If (IsNull(Email.Value)) Then
MsgBox " Vous devez renseigner l'adresse Email", vbExclamation,
Exit Sub
End If

Set HLK =3D btnEmail.Hyperlink
If InStr(1, Me.Email, "@") > 0 Then
If Left(Me.Email, 7) =3D "mailto:" Then
HLK.Address =3D Me.Email
Else
HLK.Address =3D "mailto:" & Me.Email
End If
ElseIf InStr(1, Me.Email, "http://") > 0 Then
HLK.Address =3D Me.Email
Else
HLK.Address =3D "http://" & Me.Email & "/"
End If
Set HLK =3D Nothing
End Sub

J'appele le proc=E9dure par :

Private Sub btnEmail_Click()
Call Email
End Sub

et l'erreur suivante apparait :

" Utilisation incorrecte de la propri=E8t=E8"

Merci pour votre aide.

Salutations.

10 réponses

Avatar
FreeAccess
Bonjour,

A tout hasard :

Sub Email()


Moi j'aurai plutôt fait une fontion :

Public function Email()
.....

...
End function

Avatar
jg1
Bonjour,

Merci pour ton aide.

J'ai essayé mais ça ne fonctionne pas.

Salutations
Avatar
FreeAccess
re,

Quel est le message d'erreur qui survient ??

Dans l'événement 'Sur Clic' de btnEmail tape :

Private Sub btnEmail_Click()
Dim HLK As Hyperlink
If IsNull(Email) Then
MsgBox " Vous devez renseigner l'adresse Email", vbExclamation
Exit Sub
End If


Set HLK = Me.Email.Hyperlink
If InStr(1, Email, "@") > 0 Then
If Left(Email, 7) = "mailto:" Then
HLK.Address = Email
Else
HLK.Address = "mailto:" & Email
End If
ElseIf InStr(1, Email, "http://") > 0 Then
HLK.Address = Email
Else
HLK.Address = "http://" & Email & "/" <<<<< ICI ERREUR
End If
Set HLK = Nothing
End Sub

La première partie fonctionne, mais il y a toujours une erreur sur la
ligne:

HLK.Address = "http://" & Email & "/"

Je cherche........
Avatar
FreeAccess
Re,
Dans le doute, je te propose ceci, et si bien sur le but que tu
recherche est bien d'insérer une adresse Mail valide dans un champ
hypertexte, qui par défaut va le transformer par http://...........

Sur ton Form: >>> un champ hypertexte 'EMAIL'
un bouton de commande 'btnEmail'




Sur l'événement 'Sur clic' du bouton, tape le code suivant:

Private Sub btnEmail_Click()
Dim HLK As Hyperlink
If IsNull(Email) Then
MsgBox " Vous devez renseigner l'adresse Email", vbExclamation
Exit Sub
End If

' va transformer l'adresse saisie et la faire débuter par mailto:

Set HLK = Me![Email].Hyperlink
If Left(HLK.Address, 7) = "http://" Then
Me.Email = "#mailto:" & Mid(HLK.Address, 8) & "#"
End If
End Sub

Tu peux aussi mettre ce code sur l'événement 'Après Màj' de ton
champ Email

En espérant avoir compris ce que tu voulais...;-))



Avatar
jg1
Bonsoir,

Merci pour ton code qui me sera utile.
Mais pour ma formation ne peut-on pas créer une procédure ou une
fonction que je pourrais appeler de n'importe quel formulaire.

Salutations
Avatar
FreeAccess
Bonsoir,

Bien sur que si ;-))

Tu prends le code de la Sub, à partir de Dim HLK........... et tu
recopie cela dans un module.
Au lieu de Private Sub btnEmail, tu fait une fonction (objet de mon
premier post.....) qure tu déclare en Public pour y avoir acces de
n'importe ou


Public Function Email()
Dim HLK....
.............
............
End Function

Bonne continuation
Avatar
FreeAccess
Encore moi...

Juste une petite précision, quand tu crée une fonction, comme
celle-ci peut être appelée de n'importe ou, il faut bien sur que ta
fonction ne contienne pas par exemple le nom d'un champ particulier...
Avatar
jg1
Bonjour,

J'ai essayer ton code

Private Sub btnEmail_Click()
Dim HLK As Hyperlink
If IsNull(Email) Then
MsgBox " Vous devez renseigner l'adresse Email", vbExclamation
Exit Sub
End If

' va transformer l'adresse saisie et la faire débuter par mailto:
Set HLK = Me![Email].Hyperlink
If Left(HLK.Address, 7) = "http://" Then
Me.Email = "#mailto:" & Mid(HLK.Address, 8) & "#"
End If
End Sub

Mais il ne se passe rien. Le code passe directement de " Set HLK =
Me![Email].Hyperlink " à End if

Pour la création de la fonction comment dans mon cas remplacer les
noms de champs particulier ?

Salutations
Avatar
FreeAccess
Bonjour,

Bien sur ce code n'est qu'un exemple.........mais il fonctionne
correctement ;-)

Le source contrôle de ton champ Email doit être de type 'Lien
Hypertexte'
Par défaut si tu entre une adresse mail dans ce champ, il sera
automatiquement précédé de HTTP://......
Donc si tu veux en cliquant directement sur ce champ, ouvrir ta
messagerie pour envoyer un mail...et bien là tout faux, ACCESS ici va
ouvrir ton navigateur (IE, ....)
Donc ce code ne fait que supprimer la partie HTTP.... et formater ton
adresse mail en la faisant précéder de mailto:
Avatar
jg1
Bonsoir,

Ok le code fonctionne j'avais laissé le champ Email en champ Texte.

Maintenant j'aimerai bien mettre ce code dans une fonction, mais
comment remplacer les
noms des champs particuliers ?
Salutations