09. januar 2010 - 11:40 Der er 15 kommentarer og
1 løsning

Email fra Access med Word attachment.

Jeg skal hjaelpe en velfaerdsorganisation med at sende nyhedsbreve ud til deres frivillige og sympatisanter (i det foelgende f&s).  Oplysninger om f&s sidder i en access 2007 database.  Velfaerdsorganisationen's PCer bruger XP og Microsoft Office 2007. 

Nogle f&s har en email adresse i databasen og de skal have nyhedsbrev med email.  For de f&s uden email skal jeg lave etiketter (det har jeg fundet ud af.)  For nyhedsbrevet har jeg lavet en MS Word template som forfatteren af nyhedsbrevet skal bruge til at lave word dokuments.  Nyhedsbrevene vil vaere to til tre sider lange.

Da bestanden af f&s aendres over tiden ville det vaere godt at kunne sende emailene direkte fra Access.  Til den ende har jeg studeret guiden "Send e-mail fra Access" http://www.eksperten.dk/guide/371 (med tak til forfatteren) og jeg kan nu bruge DoCmd.SendObject metoden uden vaesenlige problemer. Jeg ved hvordan man tilfoejer en rapport som bilag til emailen.

Men hvordan faar jeg et Word dokument (nyhedsbrevet) som attachment?  Jeg har proevet at lave en rapport med en stor Label og "copy and paste" et nyhedsbrev der, men der faar jeg ingen formatteret tekst.  Jeg har googlet rundt og soegt her paa eksperten men uden at finde hjaelp jeg forstod.  (Jeg er kun for nylig begyndt med Access.)

Maaske er mit problem i virkeligheden mere generelt:  Hvordan kan jeg enten indsaette et word (eller pdf) dokument i en Access database eller fra en Access database goere brug af et word/pdf dokument der sidder i et andet direktory?

Og endnu et spoergsmaal:  Metoderne beskrevet i http://www.eksperten.dk/guide/371 resulterer i at alle adressaterne faar hinanden's emailadresser.  Kendes der en metode saa hver addressat kun ser sin egen adresse?  Det vil sige uden at jeg skal trykke paa send-knappen en gang for hver adressat (eller skal lave en DBA loekke der goer det?)
Avatar billede mugs Novice
09. januar 2010 - 12:53 #1
Jeg er ikke sikker på, at du kan bruge SensObject til at vedhæfte andet end en rapport. Men spørgsmålet har været oppe tidligere, ved at bruge søgeordet Atachement kommer de en lang række spørgsmål f.eks. her:

http://www.eksperten.dk/spm/670613

Du kna sagtens lave en løkke der gennemløber alle e-mail adresser i en formular og sender en e-mail til hver.

Vedr. et tryk på send for hver e-mail mener jeg ikke det er en Access funktion. Kontroller i Emailens funktioner > indstillinger > sikkerhed om du har sat et checkmærke ved "Advar mig..."
Avatar billede terry Ekspert
09. januar 2010 - 12:55 #2
If you use Outlook to send your emails then youhave much more flexibility with what you send, and also who you send to.

Try doing a search>
http://www.eksperten.dk/search?q=email+outlook+access&category=33&days_back=-1&date_start=DD%2FMM%2F%C5%C5%C5%C5&date_end=DD%2FMM%2F%C5%C5%C5%C5

and I'm sure you will find how to loop through a table containing email addresses and also how to attach word documents
Avatar billede terry Ekspert
09. januar 2010 - 13:01 #3
You could also add ALL of your email addresses in the BCC.

Definition: A BCC (blind carbon copy; also Bcc) is a copy of an email message sent to a recipient whose email address does not appear in the message.
This is in contrast to To and CC recipients, whose addresses do appear in the respective header lines. Every recipient of the message can see all the To and CC recipients, but does not know about BCC recipients.
Avatar billede Slettet bruger
09. januar 2010 - 13:25 #4
Et par kommentarer - har dog ikke selv 'hands on' erfaringer!

Det er et tilbagevendende spørgsmål med attachments når SendObject anvendes - den kan, så vidt jeg forstår, kun vedhæfte et accesss object. (hvad navnet også antyder)

Der findes masser af andre muligheder - problemmet er snarest: hvilke skal man nu vælge - det eneste fælles for dem, er at docmd.sendObject metoden ikke anvendes.

Hvis du har outlook installeret(rigtig office outlook - ikke outlook express), så er der nogle 'automatation objects' der kan anvendes -  noget CDO noget.
http://en.wikipedia.org/wiki/Collaboration_Data_Objects
prøv at søge på
http://www.mvps.org/access/

En anden mulighed, måske, er mailserver gruppe opsætning - hvis du har adgang til sådan noget. Princippet består i at maillisten og attacments  oprettes på mailserveren som en email konto - og der sendes blot en enkelt email til denne som så udløser videresendelse til alle på listen med vedhæftning.

Uanset løsning, og specielt hvis mailserver anvendes (taler her af erfaring), er det vigtigt at teste at man får tilbagemelding om 'ikke korrekte email adresse' - alså den 'delivery fail' - som, hvis man sender på manuel vis fra email program, efterfølgende ligger i indbakken.

Det er god skik, som du også er inde på, ikke at eksponerer hele email listen i 'to' feltet, noget ikke alle massemail afsendere respekterer. Ikke alene kan nogle medlemmer måske synes at email adressen ikke skal videregives til andre medlemmer, men det er også kilde til optagelse på spamlister, grundet alt muligt der kan foregår på de enkelte modtager computere.

Det er på den anden side båndbredde spild at afsende den sammen stream hundredevis af gange fra samme computer, måske ovenikøbet med et fyldigt attachment.

Så .., man kan sende med en enkelt (egen f.eks) email adresse i 'to' feltet, og hele listen i 'bcc' feltet.
09. januar 2010 - 20:43 #5
Det var "rige" svar i den forstand at der er en hel masse for mig nu at foelge op paa og proeve af.

En ting der nu er paa plads er at jeg i Access kan kopiere medlemmernes email adresser til en liste og i DoCommand.SendObject indsaette denne liste som Bcc addressat og saa indsaette min egen email adresse som adressat saaledes at medlemmerne hver faar deres email men ikke ser hinandens adresser. (Terry thanks for the idea.)

Saa siger mugs at man (vist nok) kun kan vedhaefte access objekter saa som rapporter.  Javel.  Men er det muligt, for eksempel, at indsaette et word-dokument som et element i en rapport?  mugs, i din guide http://www.eksperten.dk/guide/371 forklarer du at en af de mulige formatter for attachmentet er Rich Text Format: RichTextFormat(*.rtf), og et eller andet sted paa nettet saa jeg noget om at det ville muliggoere en formatteret tekst som attachment.  Jeg kikker ogsaa paa det niende argument hvor der er plads til en skabelon.  Det har jeg ogsaa set flere steder paa nettet men uden forklaring paa hvordan man bruger det.  Kunne det vaere en skabelon for et word dokument?  Jeg er i gang med at foelge dine links, men det er haardt stof for en amatoer.

Og jeg skal ogsaa have kikket paa ellebe's links til hvordan man haler email adresser fra Access til Outlook (hvis det slet ikke er muligt at faa et word dokument med fra Access direkte.)
Avatar billede terry Ekspert
10. januar 2010 - 10:16 #6
I would suggest NOT using the sendObject method if you want to attach a Word document.

First you need to get some code woring which saves your word document to a folder on your PC

Once thats working here's some code to send your emails via Outlook, and you need a reference to Outlook in Tools+References.


Function SendMail()
Dim objOl As New Outlook.Application
Dim objPost As MailItem
Dim vedhæftet As Attachments
   
    Set objPost = objOl.CreateItem(olMailItem)
   
    Set vedhæftet = objPost.Attachments
    vedhæftet.Add "Path and file name to Word document goes here"
   
    With objPost
        .Subject = "Subject goes here"
        .To = "Your email goes here"
        .BCC = "List containing memebers email goes here"
        .Body = "Hej Med dig!"
                       
        '.Send
        '.Save
        .Display
       
    End With
 
  objOl.Quit
 
    Set objPost = Nothing
    Set vedhæftet = Nothing
    Set objOl = Nothing

Exit Function
Avatar billede mugs Novice
10. januar 2010 - 18:25 #7
Nu er vi inde i den højere databaseteori, hvor jeg slet ikke kan følge med. Men jeg har afprøvet terry's kode, og den fungerer perfekt med et par justeringer. Bemærk, at terry har apostroffer før linien .Send hvilket jo betyder, at linien gøres til en kommentar.

Dim objOl As New Outlook.Application
Dim objPost As MailItem
Dim vedhæftet As Attachments
Set objPost = objOl.CreateItem(olMailItem)
Set vedhæftet = objPost.Attachments
vedhæftet.Add "H:\test\Musik.doc"
With objPost
  .Subject = "Dette er en prøve"
  .To = "modtagerens e-mail"
  .BCC = ""
  .Body = "Hej Med dig!"
  .Send
  .Save
  .Display
  End With
objOl.Quit
Set objPost = Nothing
Set vedhæftet = Nothing
Set objOl = Nothing
Exit Sub
End Sub
Avatar billede terry Ekspert
10. januar 2010 - 19:23 #8
"Bemærk, at terry har apostroffer før linien .Send hvilket jo betyder, at linien gøres til en kommentar."

Glad to see your awake mugs :o)

I should have mentioned that its up to the user which to use here.


.Send 'Send the mail as it is.
.Save 'If you want to save as draft
.Display 'If we maybe want to make some alterations

So if you send then there is no real need to display
10. januar 2010 - 21:02 #9
Terry, tak for indlaeg.  Min tavshed skyldes at det ogsaa for mig er "den hoejere database teori" hvor jeg har svaert ved at foelge med.  Hvis mugs kan sige saadan jeg ogsaa tillade mig at vaere forvirret.  Jeg har faktisk brugt det meste af tiden siden dit indlaeg til at kikke paa tutorials over funktioner og lignende.  Mit hoved er fyldt nu, men jeg starter igen i morgen tidlig med at forsoege at forsoege det, og jeg skal saa tage alle tre sidste indlaeg i betragtning.  Det skal nok passe at jeg loeber ind i problemer og maa spoerge videre.  I saa fald haaber jeg paa taalmodighed.
Avatar billede mugs Novice
10. januar 2010 - 21:40 #10
Christian > Det er ikke så svært at blive forviret på et højere plan, når hajerne først begynder. Jeg er håndværker forstået på den måde, at jeg kan de grundlæggende ting i Access og også kan få mine applikationer til at fungere. Men nogen uddannelse i Access har jeg ikke bortset fra 2 x 3 dage på den lokale handelsskole for ca 20 år siden, og det lærer man faktisk ikke ret meget af. Stort set alt hvad jeg kan i Access, har jeg lært her på siden ved at afprøve de svar, der kommer på spørgsmålene.
Så bare hæng på - Der falder lidt stjernestøv af hver gang.

Men som udgangspunkt, så prøv at kopiere min / terry's kode ind i din db og få det til at fungere. Når det er sket, må du vælge hvordan du vil massemaile ved hjælp af en løkke eller med Bcc.
Avatar billede mugs Novice
10. januar 2010 - 21:49 #11
Vedr. advarslen der popper op, men at "et andet program forsøger.." så se på dette link:

http://www.contextmagic.com/express-clickyes/

Jeg har ikke selv erfaring med det.
11. januar 2010 - 10:43 #12
Halleluja, det virker!  Terry, opret et svar for points.

Mugs, tak ogsaa for for kommentarer og for opmuntring til at kaste mig ud i "den hoejere databaseteori" og ellebe tak for interesse og kommentarer (som har foroeget min almen viden selv om de ikke bidrog direkte til at loese dette problem.)

Min situation var den at jeg i Access har tabeller med email adresser til folk der skal have nyhedsbreve og mit spoergsmaal var hvordan jeg kan emaile nyhedsbrevet direkte fra Access.  Som Ellebe bemaerker, og som jeg kan se fra alle de referencer og links jeg de sidste dage har ploejet igennem, er det et generelt problem.  Terry's loesning var, fattet i korthed, i Access at optage en reference til Outlook, lave en variabel som New Outlook.Application, og saa bruge denne variabel's egenskaber til at indsaette subject, adresse, attachment (url til nyhedsbrevet,) o.s.v.

mugs, du siger at dit kendskab til Access kommer fra egne forsoeg plus fra at studere spoergsmaal her paa Eksperten.  Jeg vil vaedde med at mindst lige saa meget kendskab er kommet fra at besvare spoergsmaal, skrive guidences, o.s.v.  Min egen motivation til at besvarer spoergsmaal er det kendskab og den rutine jeg faar. 

Fordi det synes at vaere et alment probolem, og for at konsolidere hvad jeg netop har laert, taenker paa at skrive en guide om at sende emails med nyhedsbreve og lignende bilag fra Access.  Hvis Terry og mugs mener at det vil vaere plagiat saa goer jeg det ikke; jeg skal under alle omstaendigheder give reference til Terry's kode paa denne traad og til mugs guide om email fra Access.
Avatar billede mugs Novice
11. januar 2010 - 11:11 #13
Det er klart, at man også opnår en vis viden og rutine ved at besvare spørgsmål. Man lærer jo også af andres problemer.

Jeg har kun skrevet en enkelt guide. Men også her har jeg lært noget, da man jo er nødt til at dykke ned i emnet og være 100% sikker på, at det der skrives er korrekt. Ellers er en artikel jo intet værd.

Jeg har tidligere opdateret min artikel med terry's kode, så den nu også medtager attachement. Nu skriver jeg terry's kode, men hvem tilhører en sådan kode? Koderne ligger jo og flyder rundt på nettet parat til at blive brugt. Jeg har også i artiklen anført, at det er terry's kode blot for ikke at smykke mig lånte fjer, og der går ikke skår af min interesse for Access ved at skrive det.

Du er velkommen til at skrive en artikel om samme emne som jeg, og jeg vil ikke anse det for at være et plagiat. Vi er 2 forskellige mennesker, og er vi heldige kan vi måske få en anden indgangsvinkel på emnet.

Men uden at jeg lige kan nævne et emne her og nu, vil jeg da tro, at der er mange emner der endnu ikke er behandlet i en artikel, så hvorfor ikke vælge et emne, der endnu ikke er behandlet?

Men skriver du om e-mail, så kan jeg da foreslå, at du medtager et punkt, hvor du kan bestemme hvilken Word-fil der skal vedhæftes på en sådan måde, at brugeren ikke skal ændre i selve koden. Der må kunne skrives en kort artikel om dette.
Avatar billede terry Ekspert
11. januar 2010 - 13:16 #14
Glad you got something working.

I think you should give the points to mugs who's been very active in this question.
11. januar 2010 - 14:09 #15
In that case, Ok, done!
Avatar billede mugs Novice
11. januar 2010 - 15:05 #16
Så siger jeg tak til begge.
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