Avatar billede fastwrite Nybegynder
21. februar 2001 - 11:19 Der er 7 kommentarer og
1 løsning

Sende mail fra Access

Hej alle freaks.

Jeg har en telefondatabase (uhyggeligt fremtidsorienteret, ik\'?). I den database står der også en e-mail adresse ud for hver enkelt person. Se - kan man ikke - ved at trykke på en knap, få Access til at starte outlook op, hvor den SELV skriver e-mail adressen i TO: feltet, SAMT i selve indholdet på mailen henter oplysninger fra en tabel i telefondatabasen?

75 point for rigtig svar!
Avatar billede senj Nybegynder
21. februar 2001 - 11:25 #1
Avatar billede fastwrite Nybegynder
21. februar 2001 - 11:49 #2
senj - desværre. Det er ikke på den måde jeg har brug for det. når jeg skriver en besked ud for en given person, skal jeg blot trykke på en knap, så sender den beskeden via den e-mail der står ud for personen. Hvordan skal det gøres?
Avatar billede sblar Nybegynder
21. februar 2001 - 11:59 #3
Sub SendMessage(DisplayMsg As Boolean, ParSubject As String, ParBody As String, Optional AttachmentPath)
          Dim objOutlook As Outlook.Application
          Dim objOutlookMsg As Outlook.MailItem
          Dim objOutlookRecip As Outlook.Recipient
          Dim objOutlookAttach As Outlook.Attachment

          \' Opret Outlook session.
          Set objOutlook = CreateObject(\"Outlook.Application\")

          \' Opret meddelelsen.
          Set objOutlookMsg = objOutlook.CreateItem(olMailItem)

          With objOutlookMsg
              \' Tilføj modtager.
              Set objOutlookRecip = .Recipients.Add(Her indsættes din modtagers e-mail)
              objOutlookRecip.Type = olTo
             
             
             
              \' Tilføj evt. CC modtager.
\'              Set objOutlookRecip = .Recipients.Add(CC modtager)
\'              objOutlookRecip.Type = olCC


            \' Sæt Emne, Indhold og Prioritet.
            .Subject = ParSubject
            .Body = ParBody
            .Importance = olImportanceHigh  \'High importance

            \' Tilføj evt. vedhæftet fil.
            If Not IsMissing(AttachmentPath) Then
                Set objOutlookAttach = .Attachments.Add(AttachmentPath)
            End If

            \' Kontroller navne.
            For Each objOutlookRecip In .Recipients
                objOutlookRecip.Resolve
            Next

            \' Skal meddelelsen vises inden afsendelse?
            If DisplayMsg Then
                .Display
            Else
                .Save
                .Send
            End If
          End With
          Set objOutlook = Nothing
      End Sub

Kald denne rutine fra din knap\'s hændelsesprocedure og overfør modtager, emne og indhold, så skulle den være der.

Husk at databasen skal indeholde en reference til Outlook 8.0 Object library.

Hilsen Søren
Avatar billede fastwrite Nybegynder
21. februar 2001 - 12:24 #4
Tak for svaret. Skal den ikke sættes ind i MODULES? Skal den ikke vide hvorfra den skal hente tabellen med e-mail adressen, samt tabellen for beskeden?

-fw
Avatar billede sblar Nybegynder
21. februar 2001 - 12:43 #5
Funktionen behøver ikke nødvendigvis at ligge under Modules, men det ville nok være mest fornuftigt, eftersom du måske skal kalde den fra forskellige formularer. Og jo, funktionen skal have de input jeg nævnte \"modtager\", \"emne\" og \"indhold\". Dem skal din knap\'s hændelsesprocedure selv \"fiske\" ud af formen og sende med.
  Søren
Avatar billede fastwrite Nybegynder
21. februar 2001 - 12:46 #6
Hej igen.

Øh, hvordan får jeg knappen til at fiske ud af formen og sender det med?

-fw
Avatar billede sblar Nybegynder
21. februar 2001 - 12:59 #7
Hvis vi går ud fra at du på din form har følgende navngivne felter: \"email\", \"Emne\" og \"Indhold\" som er bundet til de respektive kolonner i tabellen, så kan det gøres sådan her:

SendMessage(False, Me!email, Me!Emne, Me!Indhold)

eller, hvis du vil have vist meddelelsen inden afsendelse så du selv kan rette i den:
SendMessage(True, Me!email, Me!Emne, Me!Indhold)

Det kræver en lille ændring i funktionen:

Sub SendMessage(DisplayMsg As Boolean, ParRecipient As String, ParSubject As String, ParBody As String, Optional AttachmentPath)
          Dim objOutlook As Outlook.Application
          Dim objOutlookMsg As Outlook.MailItem
          Dim objOutlookRecip As Outlook.Recipient
          Dim objOutlookAttach As Outlook.Attachment

          \' Opret Outlook session.
          Set objOutlook = CreateObject(\"Outlook.Application\")

          \' Opret meddelelsen.
          Set objOutlookMsg = objOutlook.CreateItem(olMailItem)

          With objOutlookMsg
              \' Tilføj modtager.
              Set objOutlookRecip = .Recipients.Add(ParRecipient)
              objOutlookRecip.Type = olTo
             
            \' Sæt Emne, Indhold og Prioritet.
            .Subject = ParSubject
            .Body = ParBody
            .Importance = olImportanceHigh  \'High importance

            \' Tilføj evt. vedhæftet fil.
            If Not IsMissing(AttachmentPath) Then
                Set objOutlookAttach = .Attachments.Add(AttachmentPath)
            End If

            \' Kontroller navne.
            For Each objOutlookRecip In .Recipients
                objOutlookRecip.Resolve
            Next

            \' Skal meddelelsen vises inden afsendelse?
            If DisplayMsg Then
                .Display
            Else
                .Save
                .Send
            End If
          End With
          Set objOutlook = Nothing
      End Sub

Avatar billede fastwrite Nybegynder
21. februar 2001 - 14:37 #8
Jeg prøver den lige lidt senere, måske i aften, men jeg synes alligevel du fortjener points for din udholdenhed!

mvh fw
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