Dans cette fiche... |
Access 97 dispose d'une fonction qui permet d'expédier des e-mails
ou des fax (à condition que votre ordinateur ait un système
de messagerie d'installé, comme Outlook ou Exchange).
Cette fonction s'appelle SendObject (dépendante de l'objet
DoCmd).
SendObject ne permet pas d'expédier des pièces jointes.
Si tel est votre souhait, il faut passer plutôt par Automation.
Pour utiliser ce qui suit, vous avez besoin de savoir taper du code Visual Basic dans un module Access, compiler du code, et exécuter du code.
Voici une procédure Visual Basic mettant en place la commande SendObject.
Pour des raisons pratiques, nous gérons l'envoi d'un message simple
(destinataire, objet, message).
Les champs CC: (copie à) et CCI: (copie cachée à) ne sont pas gérés (mais
vous pourrez améliorer tout ça en consultant la documentation Access).
' -------------------------------------------------- ' ENVOYER UN MAIL DEPUIS ACCESS ' -------------------------------------------------- ' Entrée : strEmail <- Adresse e-mail du destinataire ' strObj <- Objet du courrier ' strMsg <- Corps du message ' blnEdit <- True pour pouvoir modifier le courrier avant envoi ' False pour expédier le courrier directement. ' Public Sub SendMail(ByVal strEmail As String, ByVal strObj As String, _ ByVal strMsg As String, ByVal blnEdit As Boolean) On Error Resume Next DoCmd.SendObject acSendNoObject, , , strEmail, , , strObj, strMsg, blnEdit End Sub
Le dernier paramètre (blnEdit) peut valoir True (Vrai) ou False
(Faux).
S'il vaut True, le message sera affiché à l'écran pour modification
éventuelle avant envoi.
Dans le cas contraire, le message est expédié directement.
Voici une petite procédure, à taper dans un module puis à exécuter.
On pourrait améliorer (on peut toujours !) en écrivant une procédure qui
envoie un e-mail à toutes les personnes contenues dans une table.
' -------------------------------------------------- ' TEST DE L'ENVOI DE MAIL ' -------------------------------------------------- ' Public Sub TestEmail() Dim strDest As String ' L'adresse e-mail du destinataire Dim strMessage As String ' Le corps du message ' Création du corps du message strMessage = "Voici un petit exemple illustrant la" strMessage = strMessage & vbCrLf & "la possibilité d'expédier un e-mail" strMessage = strMessage & vbCrLf & "depuis Microsoft Access." strMessage = strMessage & vbCrLf & vbCrLf & "Hervé Inisan" strMessage = strMessage & vbCrLf & "http://www.multimania.com/inisan" ' On demande l'adresse e-mail du destinataire strDest = InputBox("Tapez une adresse e-mail existante : ", "Messagerie Access", "bill.gates@microsoft.com") If strDest = "" Then Exit Sub ' Envoi du message SendMail strDest, _ "** Email depuis Access **", _ strMessage, _ True End Sub
Si vous
êtes fainéant (une qualité en informatique !), cliquez sur l'icône ci-contre
pour télécharger une base Access 97 qui regroupe les 2 procédures ci-dessus
dans un module nommé "mod E-mail".
Vous y trouverez également une procédure TestFax qui utilise SendObject pour
expédier un fax.
Vous aurez besoin du logiciel Winzip pour décompacter la base.