28. december 2003 - 21:15Der er
23 kommentarer og 1 løsning
Send en rapport som mail
Jeg en en tabel som indholder personer og til hver person er der knutte en den data til forskelliget for hver person. Når så laver en rapport over tabellen så bliver det hele udskrevet som en rapport, men jeh hvil gerne havde det sådanne at jeg for lavet en rapport til hver person, som jeg så kan sende som mail.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
docmd.SendObject acSendReport,"",acFormatSNP, "Brugernavn",,,"Dine stamdata","Hermed fremsendes dine stamdata",false
Det kræver bare, at den forespørgsel, som rapporten bygger på, selv filtrere på brugeren. Dvs at du f.eks. skal have et kriterie i forespørgslen, som peger på formularens felt (f.eks. Forms!DinFormular!BrugerID)
If you want to send a report which only containing the specific data for each person then you you are going to have to loop through all users and then base the report on a query which only selects data for a single user. This can be done in a number of ways, but first I (we) need to know IF that is what you want-
Gylling->Du kan vælge forskellige formater at sende i. Snapshot (som jeg foreslog med acFormatSNP er det eneste format som ligner den rigtige, men kræver at modtageren har en snapshotviewer - som ganske vist er gratis)
Alternativt kan du vælge HTML-format eller RTF-format, som begge kun er tilnærmede rapporter. Dvs at detaljer som streger med mere ofter forsvinder.
docmd.SendObject acSendReport,"Navn på din rapport",acFormatRTF, "Brugernavn",,,"Dine stamdata","Hermed fremsendes dine stamdata",false
haha, ja det er godt med dig :o) Jeg synes ellers at du skraber godt med point til dig for tiden....men den hastighed du har på, så har du jo overhalet mig i løbet af et par måneder. Men god bagjul forøvrigt :o)
Here is a simple example of how you can send to all users, and if you want, to only one. The function SendToAll will loop through your user table sending only the data specific to each user. You can also call the function SendToPerson if you only want to send to a specific person, but thats maybe overkill!
Function SendToPerson(PID As Long, Umail As String) Dim sSQL As String
'Build the SQL in code. (You need a query named (in this example) qryUsedInReport) sSQL = "SELECT * FROM tblInfo WHERE PersonID = " & PID
'Now modify the queries SQL (query MUST exist already) CurrentDb.QueryDefs("qryUsedInReport").SQl = sSQL
'Just to make sure there are records to export, (tblInfo is same table as that used in the query to the report) If DCount("ID", "tblInfo", "PersonID = " & PID) > 0 Then 'Now send the report
DoCmd.SendObject acSendReport, "ReportName", acFormatRTF, Umail, , , "The Subject", "The text body", False
End If
End Function
Function SendToAll() Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset With rs
Set .ActiveConnection = CurrentProject.Connection
.Open "Select UserID, UserEmail From tabel1", , , adLockOptimistic
Do Until .EOF SendToPerson !UserID, !UserEmail .MoveNext Loop
--->Alle undskyld den lange ventetid men jeg skulle lige havde fundet om jeg kunne bruge jeres svar, Jeg har kikke på den og har ikke kunne bruge dem. Jeg skal lave en excel fil og sende til ca 160 personer og fil indeholdet er forskellige, så jeg har lavet det således at jeg bruger 2 forspørelser til det, nu er problemt sp bare hvordan få jeg lagt mail adressen ind automatisk.
->mugs Det duer ikke da jeg så skal vælg 160 personer 2 gang om ugen. Jeg har lavet det sådanne at når jeg start en markro der gentager sig 160 *, Så jeg har en forspørgels med mail adressen på personen der skal havde mailen så hvis jeg nu bare kan få sat den i ovennævnte SQl sætten der hvor der stå mail adrtesse uden at skulle tast noget.
gyling>I so NO mention of an Excel file in your question! We can only suggest solutions to the actual question placed.
The example I gave can easily be modifies to send an Excel sheet instead of a report, still using theDocmd.sendobject method. If you look in Help you will find all the information you need, but my help is used up :o)
--> Ok terry men jeg kan ikke forstå hvordan din funticion skal virke, det jeg efterlyser er såmen bare hvordan jeg for mail adresse sat ind i min sql, men jeg kan da godt lukke ? og opret et nyt. Det det hele dreje sig om er at jeg skal sende en tabel til nogen som så kan importer den til en access database men der er 160 bruger og data i tabeller er forskellige fra person til person men format er det samme.
If you send me your dB with information as to what I should look at then I will see if I can put an example together for you NOSPAMeksperten@santhell.dkNOSPAM
I originally thought that it was required to send a different report toeach person, but after looking at the comment 04/01-2004 17:48:21 "så jeg har lavet det således at jeg bruger 2 forspørelser til det, nu er problemt sp bare hvordan få jeg lagt mail adressen ind automatisk. " I have made this solution (examaple with one query) A form with one single button!
Private Sub Command0_Click()
SendToAll
End Sub
Function SendToAll() Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset With rs
Set .ActiveConnection = CurrentProject.Connection
.Open "Select DISTINCT mail From vognmand", , , adLockOptimistic
--> Terry det virke perfekt jeg har godt nok lige rette i det men nu kan jeg sende de data der er brug for der er en del der bliver glade. Tusind Tak for hjælpen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.