Hej! Inget kommandom som är native Access. Sök på CDO. Det är ett mer utförligt bibliotek. Hej Andreas! Sök på googel/msnd efter Collaboration Data Objects. Hej Lars! Hej Jan! Hej Lars! Hej Jan!Bifoga fil i skapat e-postmeddelande
Hur gör man för att bifoga en fil i ett e-postmeddelande skapat av access?
Jag har tittat lite på DoCmd.SendObject men det kan inte bifoga en fil av godtycklig typ,
i mitt fall en PDF-fil.
Finns det något annat kommando man kan använda?
Lars LantzSv: Bifoga fil i skapat e-postmeddelande
Sv:Bifoga fil i skapat e-postmeddelande
Ursäkta om jag verkar korkad men vad är CDO? Ett mer utförligt bibliotek??? Fattar ingenting...
/LarsSv: Bifoga fil i skapat e-postmeddelande
Frågan är hur generelt du skall implmentera det. Jag vet inte om CDO bara fungera med Microsofts produkter eller alla klienter som implementera MAPI.
Ett alternativ är annars MAPI - Mail Aplication Program Interface.Sv: Bifoga fil i skapat e-postmeddelande
På länken http://support.microsoft.com/default.aspx?scid=kb;en-us;209948 finns ett förslag till lösning som, om jag minns rätt, tillåter dig att lägga in vilken typ av bifogad filsom helst.
I och med att du länkar in Outlooks klassbibliotek kan du utnyttja de möjligheter som Outlook erbjuder.
Förutsättningen är naturligtvis att det är Outlook du använder för att maila.
/JanISv:Bifoga fil i skapat e-postmeddelande
Jag har testat det du föreslår. Funkar jättebra och löser problemet sånär som
på en punkt. Jag vill att e-postadressen ska hämtas från access [e-postadress]
och inte från Outlook.
Sitter nu och funderar på en lösning.
Har du något förslag?
Med vänlig hälsning
Lars
Nedanstående är originalkoden från länken du tipsade om.
Sub SendMessage(Optional AttachmentPath)
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment
' Create the Outlook session.
Set objOutlook = CreateObject("Outlook.Application")
' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
' Add the To recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("Nancy Davolio")
objOutlookRecip.Type = olTo
' Add the CC recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("Andrew Fuller")
objOutlookRecip.Type = olCC
' Set the Subject, Body, and Importance of the message.
.Subject = "This is an Automation test with Microsoft Outlook"
.Body = "Last test - I promise." & vbCrLf & vbCrLf
.Importance = olImportanceHigh 'High importance
' Add attachments to the message.
If Not IsMissing(AttachmentPath) Then
Set objOutlookAttach = .Attachments.Add(AttachmentPath)
End If
' Resolve each Recipient's name.
For Each objOutlookRecip In .Recipients
objOutlookRecip.Resolve
If Not objOutlookRecip.Resolve Then
objOutlookMsg.Display
End If
Next
.Send
End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End SubSv: Bifoga fil i skapat e-postmeddelande
Kul att du hittade en lösning.
Ditt problem med mailadresser kan nog ha flera lösningar lite beroende på hur din [e-postadress]
ser ut, hur många du skall maila till, om listan över dina mottagare är statisk etc.
Låt oss anta att listan är likadan varje gång. Då är det enkelt. Skapa en sändlista i Outlook och ange sändlistan som mottagare. (Måste dock medge att jag inte testat detta)
Är det däremot olika mottagare varje gång så stegar du dig igenom din [e-postadress]-tabell och väljer ut dem som du vill skicka till. Skapa en strängvariabel som du använder för att lagra dina mottagare i. För varje träff du får som motsvarar kriteriet att hamna på listan så adderar du e-postadressen till din sträng. Glöm inte att lägga till ett semikolon mellan varje epostadress eftersom semikolon är Outlooks sätt att skilja adresserna åt. Jag vet dock inte om Outlook har någon övre gräns för antalet mottagare så du kanske måste dela upp körningen i flera steg.
Ett annat sätt är att lägga en snurra och köra igenom din [e-postadress]-tabell och exekvera din mailkod en gång för varje mottagare.
Lycka till hälsar JanISv:Bifoga fil i skapat e-postmeddelande
Tack för alla dina tips!
Det kommer att funka så här: Jag öppnar ett formulär [frmbeställa_aktiviteter]. Där knappar man in diverse uppgifter om aktiviteten man ska beställa. Jag klickar sen på en knapp som skriver ut en rapport till en PDF-fil. Därefter ska ett e-postmeddelande skapas med leverantörens e-postadress som mottagare. E-postadressen finns i ett leverantörsregister i access och presenteras i formuläret där jag skapade beställningen. Frågan är bara hur man får in den i e-postmeddelandet. PDF-filen, Ämne osv. har jag kontroll över via formuläret men inte e-postadressen.
Set objOutlookRecip = .Recipients.Add("Nancy Davolio")
Jag provade att ändra ovanstående till:
Set objOutlookRecip = .Recipients.Add("[e-postadress]")
men det funkade inte...
Nu vet du åtminståne på vilken kunskapsnivå jag befinner mig (låglåg). Jag kan alltså för lite om VBA för att lösa detta enkelt.
Med vänlig hälsning
Lars Lantz