OVH Cloud OVH Cloud

Envoi dEtat par mail

17 réponses
Avatar
Luis
Bonjour,
J'ai trouv=E9 dans le site d'Arnaud le code pour envoyer un=20
=E9tat par Outlook et dans:

With Application.FileSearch
.LookIn =3D CurDir
.SearchSubFolders =3D False
.FileName =3D NomEtat & "*.htm"
.Execute

--J'ai ajout=E9 dans la formule pour qu'il choisisse l'=E9tat=20
d'apr=E8s le num=E9ro du formulaire:
--NomEtat =3D ([NomEtat].[NEtat] =3D [Formulaires]!
[NomFormulaire].[NFormulaire]__Cl=E9 Primaire__)
--Mais access me dit qu'il ne trouve pas le champ.

NbFichiers =3D .FoundFiles.Count
LeFichier =3D CurDir & "\" & NomEtat & ".htm"
DoCmd.OutputTo acOutputReport, NomEtat, acFormatHTML,=20
LeFichier, False

.Execute
NbFichiers =3D .FoundFiles.Count - NbFichiers
=20
End With

7 réponses

1 2
Avatar
3stone
brrr.... :-))

"Luis"
J'ai mis
.To = Destinataire
Et
SendReportHTML"Etat_Facture","", "Facture", True)


- "Etat_Facture"
est à remplacer par le nom de l'état que tu veux envoyer

- "" doit représenter l'adresse du destinataire

- "Facture" sera l'objet du mail

- True si tu veux éditer le mail avant l'envoi (sinon tu mets False)


Bien sur, tu peux selon tes besoins, remplacer les chaînes
par des variables ou par des zones de texte. A toi de voir...

PS: J'ai tester la fonction tel quel et elle a envoyer mon état sans problème!


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome
Avatar
Luis
Non bien sur, voilà ce que j'ai:
SendReportHTML
("COMMANDES2", "", "COMMANDES",True)
"COMMANDES2", est l'état
"" est l'adresse email
"COMMANDES" est le sujet du mail
Si j'ai mis dans le fil de la discussion:
"Etat_Facture","", "Facture", True)
C'était pour ne pas te dépayser.
Mais j'ai toujours la même erreur:
Dès que j'ai fini d'écrire le code
Erreur de compilation
Attendu =
Comment évites-tu l'erreur?
Luis
-----Message d'origine-----
brrr.... :-))

"Luis"
J'ai mis
..To = Destinataire
Et
SendReportHTML"Etat_Facture","", "Facture
", True)



- "Etat_Facture"
est à remplacer par le nom de l'état que tu veux envoyer

- "" doit représenter l'adresse du
destinataire


- "Facture" sera l'objet du mail

- True si tu veux éditer le mail avant l'envoi (sinon tu
mets False)



Bien sur, tu peux selon tes besoins, remplacer les chaînes
par des variables ou par des zones de texte. A toi de
voir...


PS: J'ai tester la fonction tel quel et elle a envoyer
mon état sans problème!



--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome




.



Avatar
3stone
re,

"Luis"
[...]
Mais j'ai toujours la même erreur:
Dès que j'ai fini d'écrire le code
Erreur de compilation


A tout hasard...


Dans l'exemple, sur le site, il est dit:

/*
Pour éviter les messages de sécurité d'Outlook,
on pourra adapter ce code et utiliser la méthode CDO
qui comporte également la propriété HTMLBody
*/


As tu bien coché référence CDO ??


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome
Avatar
Luis
Re-bonjour,
S'il s'agit de la référence
Microsoft CDO For Exchange 2000 Library
Oui, cette référence est cochée.
Mais le problème est tout de suite à l'écriture du code
lui-même, comme s'il manquait quelque chose.
Ce n'est pas lorsque je lance la fonction, je n'ai pas pu
la lancer.
Luis
-----Message d'origine-----
re,

"Luis"
[...]
Mais j'ai toujours la même erreur:
Dès que j'ai fini d'écrire le code
Erreur de compilation


A tout hasard...


Dans l'exemple, sur le site, il est dit:

/*
Pour éviter les messages de sécurité d'Outlook,
on pourra adapter ce code et utiliser la méthode CDO
qui comporte également la propriété HTMLBody
*/


As tu bien coché référence CDO ??


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome






.



Avatar
3stone
re et der...

"Luis"
[...]
Mais le problème est tout de suite à l'écriture du code
lui-même, comme s'il manquait quelque chose.
Ce n'est pas lorsque je lance la fonction, je n'ai pas pu
la lancer.



Je regarde le fil (qui devient terrrible pour une bête fonction ;-)
et je vois...



La totalité de mon code est:
Public Sub SendReportHTML(NomEtat As String, Destinataire
As String, Sujet As String, EditMessage As Boolean,
Optional PieceJointe As String)

Dim NbFichiers As Integer
Dim i As Integer
Dim LeFichier As String
Dim txtLine As String
Dim F As Integer
Dim CorpsHTML As String
Dim Ol_App As New Outlook.Application
Dim Ol_Item As Outlook.MailItem
End Sub <<<<<<<<<<< c'est quoi ca ??
Public Sub SendEnvoiEtat() <<<< et ca ???

DoCmd.SetWarnings False
DoCmd.Hourglass True
NomEtat = "COMMANDES2"

With Application.FileSearch



Fait un copier/coller de la fonction originale et fait un appel
dans les règles SANS RIEN MODIFIER pour une fois !!!

Tu verras que cela fonctionne!


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome
Avatar
Luis
Rebonjour,

Ce doit-être une erreur lorsque j'ai recopié sur le news.
Là je fais du copier/coller de ce que j'ai:

Public Sub SendReportHTML(NomEtat As String, Destinataire
As String, Sujet As String, EditMessage As Boolean,
Optional PieceJointe As String)

Dim NbFichiers As Integer
Dim i As Integer
Dim LeFichier As String
Dim txtLine As String
Dim F As Integer
Dim CorpsHTML As String
Dim Ol_App As New Outlook.Application
Dim Ol_Item As Outlook.MailItem

DoCmd.Hourglass True

With Application.FileSearch
.LookIn = CurDir
.SearchSubFolders = False
.FileName = NomEtat & "*.htm"
.Execute

NbFichiers = .FoundFiles.Count
LeFichier = CurDir & "" & NomEtat & ".htm"
DoCmd.OutputTo acOutputReport, NomEtat, acFormatHTML,
LeFichier, False

.Execute
NbFichiers = .FoundFiles.Count - NbFichiers

End With

F = FreeFile
For i = 1 To NbFichiers
If i > 1 Then: LeFichier = CurDir & "" & NomEtat
& "Page" & i & ".htm"
SysCmd acSysCmdInitMeter, "Intégration de " &
LeFichier, NbFichiers
SysCmd acSysCmdUpdateMeter, i
Open LeFichier For Input As #F
Do While Not EOF(F)
Line Input #F, txtLine
CorpsHTML = CorpsHTML & txtLine
Loop
Close #F
Kill LeFichier
Next i
SysCmd acSysCmdClearStatus

Set Ol_Item = Ol_App.CreateItem(olMailItem)

With Ol_Item
.To = Destinataire
.Subject = Sujet
.HTMLBody = CorpsHTML
If PieceJointe <> "" Then: .Attachments.Add PieceJointe
.Save
If EditMessage = True Then
.Display
Else
.Send
End If
End With

Set Ol_Item = Nothing
Set Ol_App = Nothing

DoCmd.Hourglass False

End Sub

Il me semble que c'est exactement ce qu'il y a sur la
fonction originale.

Je mets dans la commande du formulaire:
SendReportHTML
("COMMANDES2", "", "COMMANDES",True)
Et c'est là que ça bloque ce n'est pas ailleurs, à
l'écriture de ce petit bout de code j'ai déjà l'erreur.

Luis
-----Message d'origine-----
re et der...

"Luis"
[...]
Mais le problème est tout de suite à l'écriture du code
lui-même, comme s'il manquait quelque chose.
Ce n'est pas lorsque je lance la fonction, je n'ai pas pu
la lancer.



Je regarde le fil (qui devient terrrible pour une bête
fonction ;-)

et je vois...



La totalité de mon code est:
Public Sub SendReportHTML(NomEtat As String, Destinataire
As String, Sujet As String, EditMessage As Boolean,
Optional PieceJointe As String)

Dim NbFichiers As Integer
Dim i As Integer
Dim LeFichier As String
Dim txtLine As String
Dim F As Integer
Dim CorpsHTML As String
Dim Ol_App As New Outlook.Application
Dim Ol_Item As Outlook.MailItem
End Sub <<<<<<<<<<< c'est quoi ca ??
Public Sub SendEnvoiEtat() <<<< et ca ???

DoCmd.SetWarnings False
DoCmd.Hourglass True
NomEtat = "COMMANDES2"

With Application.FileSearch



Fait un copier/coller de la fonction originale et fait un
appel

dans les règles SANS RIEN MODIFIER pour une fois !!!

Tu verras que cela fonctionne!


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome



.



Avatar
Larff
Salut les mecs,
Hééééé, Louis est entrain de te dire que
SendReportHTML
("COMMANDES2", "", "COMMANDES",True)
est faux.
Donne lui le bon code sinon vous allez y passer le nuit.
Larff
-----Message d'origine-----
re et der...

"Luis"
[...]
Mais le problème est tout de suite à l'écriture du code
lui-même, comme s'il manquait quelque chose.
Ce n'est pas lorsque je lance la fonction, je n'ai pas pu
la lancer.



Je regarde le fil (qui devient terrrible pour une bête
fonction ;-)

et je vois...



La totalité de mon code est:
Public Sub SendReportHTML(NomEtat As String, Destinataire
As String, Sujet As String, EditMessage As Boolean,
Optional PieceJointe As String)

Dim NbFichiers As Integer
Dim i As Integer
Dim LeFichier As String
Dim txtLine As String
Dim F As Integer
Dim CorpsHTML As String
Dim Ol_App As New Outlook.Application
Dim Ol_Item As Outlook.MailItem
End Sub <<<<<<<<<<< c'est quoi ca ??
Public Sub SendEnvoiEtat() <<<< et ca ???

DoCmd.SetWarnings False
DoCmd.Hourglass True
NomEtat = "COMMANDES2"

With Application.FileSearch



Fait un copier/coller de la fonction originale et fait un
appel

dans les règles SANS RIEN MODIFIER pour une fois !!!

Tu verras que cela fonctionne!


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome



.



1 2