Sub или функция не определены MS Access SendEmailFromOutlook - PullRequest
0 голосов
/ 18 мая 2018

Привет, я уверен, что это будет действительно быстрое решение, и когда кто-то мне это скажет, я подумаю серьезно, я этого не видел!Но я пытался получить эту функцию под названием «SendEmailWithOutlook» из другого подпрограммы, и она просто не работает.

If Not (CountriesFilter.EOF And CountriesFilter.BOF) Then
    CountriesFilter.MoveFirst
    Do Until CountriesFilter.EOF = True
        If Not (EmailCountry.EOF And EmailCountry.BOF) Then
            EmailCountry.MoveFirst
            Do Until EmailCountry.EOF = True
                If EmailCountry!Country = CountriesFilter!Country Then
                    Country = CountriesFilter!Country
                    Email = EmailCountry!EmailEmail

                    DoCmd.DeleteObject acTable, "BadUsers"
                    Set qdfsCountry = CurrentDb.QueryDefs("BadUsersqry")
                    qdfsCountry!WhatCountry = Country
                    qdfsCountry.Execute
                    Set qdfsCountry = Nothing

                    DoCmd.DeleteObject acTable, "OkayUsers"
                    Set qdfsCountry = CurrentDb.QueryDefs("OkayUsersqry")
                    qdfsCountry!WhatCountry = Country
                    qdfsCountry.Execute
                    Set qdfsCountry = Nothing

                    DoCmd.DeleteObject acTable, "GoodUsers"
                    Set qdfsCountry = CurrentDb.QueryDefs("GoodUsersqry")
                    qdfsCountry!WhatCountry = Country
                    qdfsCountry.Execute
                    Set qdfsCountry = Nothing

                    DoCmd.TransferSpreadsheet acExport, 10, 
"BadUsers", "L:\WeeklyUserActivity\WeeklyUserBreakDown" & Country & ".xlsx", 
True, "BadUsers"
                    DoCmd.TransferSpreadsheet acExport, 10, 
"OkayUsers", "L:\WeeklyUserActivity\WeeklyUserBreakDown" & Country & 
".xlsx", True, "OkayUsers"
                    DoCmd.TransferSpreadsheet acExport, 10, 
"GoodUsers", "L:\WeeklyUserActivity\WeeklyUserBreakDown" & Country & 
".xlsx", True, "GoodUsers"

                    Main 
"L:\WeeklyUserActivity\WeeklyUserBreakDown" & Country & ".xlsx"
                    ***Call SendEmailWithOutlook***
                End If
                Email = ""
                EmailCountry.MoveNext
            Loop
        End If
        Country = ""
        CountriesFilter.MoveNext
    Loop
End If

А вот функция, которую она вызывает

Public Function SendEmailWithOutlook()
Dim sentfrom As String
Dim toemail As String
Dim subjectemail As String

sentfrom = "An EMAIL"
  ' Define app variable and get Outlook using the "New" keyword
  Dim olApp As New Outlook.Application
  Dim MItem As Outlook.MailItem ' An Outlook Mail item
  'Dim myattachments As Outlook.Attachments

  ' Create a new email object
  Set MItem = olApp.CreateItem(olMailItem)
  'Set myattachments = MItem.Attachments
  ' Add the To/Subject/Body to the message and display the message
  With MItem
    .To = Email
    .Subject = "WeeklyUserBreakDown"
    .Body = "Automated Email. Please Find your weekly user Breakdown 
  Spreadsheet attachted"
    .Attachments.Add ("L:\WeeklyUserActivity\WeeklyUserBreakDown" & Country 
  & ".xlsx")
    .Send       ' Send the message immediately
  End With
  Exit Function
  email_error:
  MsgBox "An Error was encountered. " & vbCrLf & "The error message is: " & 
  Err.Description
  Resume Error_out
  Error_out:
  ' Release all object variables
  Set MItem = Nothing
  Set olApp = Nothing
  End Function

Эта функция является модулем, поэтому должна иметь возможность вызывать ее.Но все еще не знаю, почему я не могу это назвать.

1 Ответ

0 голосов
/ 21 мая 2018

Я думаю, что мне удалось решить проблему, я переместил функцию в папку «Модули» (из папки модуля класса), и теперь программа может компилироваться и запускаться. Спасибо всем, кто потратил время и усилия, чтобы помочь мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...