Привет, я уверен, что это будет действительно быстрое решение, и когда кто-то мне это скажет, я подумаю серьезно, я этого не видел!Но я пытался получить эту функцию под названием «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
Эта функция является модулем, поэтому должна иметь возможность вызывать ее.Но все еще не знаю, почему я не могу это назвать.