Avatar billede gylling Juniormester
28. december 2003 - 21:15 Der 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.
Avatar billede mugs Novice
28. december 2003 - 21:19 #1
DoCmd.OpenReport "rapport1", acViewPreview, , "[Tabel1]![tekst] = " & Me!Tekst1
Avatar billede mugs Novice
28. december 2003 - 21:20 #2
feltet tekst er det felt i tabellen der identificerer den enkelte post. Me.Tekst1 er et felt i formularen der indeholder samme data som tekst
Avatar billede mugs Novice
28. december 2003 - 21:29 #3
Undskyld en mindre fejl. Den skal se sådan ud:

DoCmd.OpenReport "rapport1", acViewPreview, , "[Tabel1]![tekst] = '" & Me!tekst & "'"
28. december 2003 - 23:12 #4
øh mugs...? Glemte du ikke lige det med at den skulle sendes som mail??
28. december 2003 - 23:16 #5
Gylling-> Prøv denne:

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)
Avatar billede mugs Novice
28. december 2003 - 23:16 #6
a = Me.email
DoCmd.SendObject acReport, "Rapport1", "HTML(*.html)", a, "", "", "Hej", "Dette er en prøve", False, ""
Avatar billede terry Ekspert
28. december 2003 - 23:20 #7
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-
28. december 2003 - 23:22 #8
Mugs-> bedre sent end aldrig :o)

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
Avatar billede mugs Novice
28. december 2003 - 23:27 #9
Thomas -> Husk lige på, at jeg er en ældre distingveret Herre, der af og til skal have læst tingene mere end een gang, inden de falder i hak :o)
28. december 2003 - 23:30 #10
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)
Avatar billede mugs Novice
28. december 2003 - 23:33 #11
Tak i lige måde.

Det med at skrabe point sammen, er nok mere et udtryk for andre brugeres fravær
Avatar billede terry Ekspert
29. december 2003 - 15:17 #12
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
       
    End With
   
    rs.Close

End Function
Avatar billede terry Ekspert
29. december 2003 - 15:17 #13
NOTE:It is NOT tested!
Avatar billede gylling Juniormester
29. december 2003 - 17:48 #14
---> til alle er på arbejdet få først tid i morgen til at se og test jeres svar
Avatar billede terry Ekspert
02. januar 2004 - 12:27 #15
Og Godt NytÅr :o)
Avatar billede gylling Juniormester
04. januar 2004 - 17:48 #16
--->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.

DoCmd.SendObject acTable, "VAGTTOTALER", "MicrosoftExcelBiff8(*.xls)", "Mail ADRESSE", "", "", "Vagtdata", "", False, ""

Er der nogen der har en ide
Avatar billede mugs Novice
04. januar 2004 - 17:52 #17
Du kan lave en liste, hvor du vælger modtagere.
Avatar billede gylling Juniormester
04. januar 2004 - 18:12 #18
->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.
Avatar billede terry Ekspert
04. januar 2004 - 19:51 #19
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)
Avatar billede gylling Juniormester
04. januar 2004 - 21:54 #20
--> 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.
Avatar billede terry Ekspert
05. januar 2004 - 21:39 #21
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

you need to remove NOSPAM
Avatar billede terry Ekspert
07. januar 2004 - 14:38 #22
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
       
        Do Until .EOF
           
            DoCmd.SendObject acQuery, "VAGTTOTALER", acFormatXLS, rs!mail, "", "", "Vagtdata", "", False, ""

            .MoveNext
        Loop
       
    End With
   
    rs.Close

End Function
Avatar billede gylling Juniormester
07. januar 2004 - 21:49 #23
--> 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.
Avatar billede terry Ekspert
08. januar 2004 - 10:52 #24
selv tak :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester