Bonjour

je rame un peu (beaucoup) en VB et je cherche a la suite d'une date saisie dans une Inputbox

- ouvrir un état en impression directe filtré par la date entrée dans l'Inputbox
- sauvegarder cet état en PDF avec comme nom la date rentrée dans l'inputbox.pdf
- envoyer cet etat (donc ce PDF) par Email

J'ai posé une question dans ce sens dans la section IHM mais il me semble que cette question est plus appropriée dans la section VB...

Actuellement mon code est celui ci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
' créé le fichier PDF d'apres le nom de l'etat choisi
Dim NmFichier As String 'Nom du fichier
Dim dateselection As Date
Dim DateTemp As Date
dateselection = InputBox("Entrez la date :")
DoCmd.OpenReport "MonEtat", , , "cdbl([Date])=" & CDbl(dateselection)
NmFichier = "Liste des Soumissions du" & "_" & dateselection & ".pdf"
DoCmd.OutputTo acOutputReport, "MonEtat", acFormatPDF, "c:\" & NmFichier,  True
'envoie le fichier choisi à la personnes déterminée par le lien
DoCmd.SendObject acSendReport, "MonEtat", acFormatPDF, "destinataire@fai.fr", , , "Liste du ", "Veuillez trouver ci joint ...... pour la journée du ", False
While CurrentProject.AllReports("MonEtat").IsLoaded
   DoEvents
Wend
DoCmd.RunSQL "Delete * From TableTempoDateImpression where DateTemp=" & dateselection
mais autant l'etat imprimé est filtré, autant les deux autres (celui sauvegardé et celui mailer) ne le sont pas.
Du reste, cela cause uen erreur et le save en PDF ne se fait pas car le fichier non filtré donne un état trop volumineux (avec un etat plus petit le save se fait mais toujours sans tenir compte du filtre)

J'ai trouvé cette discution ou la personne dit:

Citation Envoyé par AndréPe Voir le message
Les méthodes OutPutTo et SendObject, si on ne donne pas de nom d'objet (seulement acOutPutReport ou acSendReport) à envoyer, utilisent l'objet actif.
Puis elle donne du code...mais j'avoue ne rien y comprendre
quelqu'un peut il m'aider à adapter cela a mon cas ?

ce que je comprends d'apres les explications de la personne, c'est que une fois que le report est Open, plus besoins de specifier d'argument, il devrait se baser sur le report Open dans l'etat avec la selection faite au moment de l'ouverture ???? Mais il semble ne s'ouvrir que sans tenir compte de cet argument car si je ne specifie pas d'objet dans la methode DoCmd.OutputTo, j'ai un message d'erreur qui me dit que "l'action ou la methode nécessite un argument type d'objet, et pourtant dans la méthode DoCmd.OutputTo expliquée dans le Help, l'objet est decris comme facultatif...

Quelqu'un pourrait il m'aider.

par avance merci