У меня есть база данных .mdb, и я запрашиваю ее в своем макросе.Я помещаю результаты запроса в массив.Я хочу показать их в своем теле Outlook, но выдает ошибку:
индекс вне диапазона
Public Sub sendNotifForm4()
Dim userArray() As Variant
Dim i As Integer
Dim x As Integer
Dim objOutlook As Object
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = OpenDatabase("C:/Users/FTK1187/Desktop/eArchiveMaster.mdb", False, False, ";")
Set rs = db.OpenRecordset(Name:="SELECT userName FROM userTable WHERE flag = 'NO'")
rs.MoveFirst
Do While Not rs.EOF
userArray = rs.GetRows
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
x = (UBound(userArray, 1) - LBound(userArray, 1) + 1)
'On Error Resume Next
Set objOutlook = GetObject(, "Outlook.Application") ' Determine if Outlook is open
If Err <> 0 Then 'If Not open it
Call Shell(SysCmd(acSysCmdAccessDir) & "OUTLOOK.EXE")
End If
Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
objOutlookMsg.Subject = " E - Archiving User Account Approvements "
objOutlookMsg.Body = objOutlookMsg.Body & "Dear Admin," & _
vbNewLine & vbNewLine & "Please approve this user accounts" & _
vbNewLine & vbNewLine
For i = 0 To UBound(userArray)
objOutlookMsg.Body = objOutlookMsg.Body & "User Name:"
objOutlookMsg.Body = objOutlookMsg.Body & userArray(i)
objOutlookMsg.Body = objOutlookMsg.Body & "Approval : NO"
Next i
objOutlookMsg.Body = objOutlookMsg.Body & vbNewLine & vbNewLine & "Best Regards"
'admin table loop here:
Set objOutlookRecip = objOutlookMsg.Recipients.Add("Mustafa.Demir@pw.utc.com") '
objOutlookRecip.Type = olTo
'Call sendMail(objOutlookMsg, objOutlookRecip, "Repair Engineering", olTo)
objOutlookMsg.Send
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End Sub
Я пытался использовать objOutlookMsg.HTMLBody
,но я не могу запустить его правильно.Можете ли вы помочь мне решить эту проблему?