从列表框中选择多个项目以附加到电子邮件中
Posted
技术标签:
【中文标题】从列表框中选择多个项目以附加到电子邮件中【英文标题】:Select Multiple Items from Listbox to Attach in Email 【发布时间】:2016-01-06 20:19:33 【问题描述】:我已经建立了一个包含多个文件的数据库,例如用户手册。我在 Access 中创建的表单之一是一个搜索字段,它使用查询来查找用户正在查找的特定文件。搜索将结果缩小到一个列表框中,双击将为您打开文件。结果还根据文档类型缩小到选项卡中。我已经实现了一项功能,如果您单选(文件)结果以突出显示它,然后单击一个按钮,它会将该文件插入到 MS Outlook 中的新消息中。这很好用,但我想在同一封电子邮件中选择多个文件。我一直在网上到处搜索,似乎找不到合适的解决方案。我将在下面列出我的代码。
这第一部分是在我的搜索表单中编码的。
Private Sub cmdEMail_Click()
Dim fpath As String
'Find out what tab user is on
Select Case Me!tabResults.Value
Case 0
If IsNull(lstManResults.Column(5, lstManResults.ListIndex)) Then
Exit Sub
Else
fpath = lstManResults.Column(5, lstManResults.ListIndex)
End If
Case 1
If IsNull(lstBullResults.Column(5, lstBullResults.ListIndex)) Then
Exit Sub
Else
fpath = lstBullResults.Column(5, lstBullResults.ListIndex)
End If
Case 2
If IsNull(lstSubResults.Column(5, lstSubResults.ListIndex)) Then
Exit Sub
Else
fpath = lstSubResults.Column(5, lstSubResults.ListIndex)
End If
Case 3
If IsNull(lstPicResults.Column(5, lstPicResults.ListIndex)) Then
Exit Sub
Else
fpath = lstPicResults.Column(5, lstPicResults.ListIndex)
End If
Case 4
If IsNull(lstWarrResults.Column(5, lstWarrResults.ListIndex)) Then
Exit Sub
Else
fpath = lstWarrResults.Column(5, lstWarrResults.ListIndex)
End If
Case 5
If IsNull(lstPartResults.Column(5, lstPartResults.ListIndex)) Then
Exit Sub
Else
fpath = lstPartResults.Column(5, lstPartResults.ListIndex)
End If
Case 6
If IsNull(lstSchemResults.Column(5, lstSchemResults.ListIndex)) Then
Exit Sub
Else
fpath = lstSchemResults.Column(5, lstSchemResults.ListIndex)
End If
Case 7
If IsNull(lstAppResults.Column(5, lstAppResults.ListIndex)) Then
Exit Sub
Else
fpath = lstAppResults.Column(5, lstAppResults.ListIndex)
End If
Case 8
If IsNull(lstSpecResults.Column(5, lstSpecResults.ListIndex)) Then
Exit Sub
Else
fpath = lstSpecResults.Column(5, lstSpecResults.ListIndex)
End If
Case 9
If IsNull(lstInternalResults.Column(5, lstInternalResults.ListIndex)) Then
Exit Sub
Else
fpath = lstInternalResults.Column(5, lstInternalResults.ListIndex)
End If
Case 10
If IsNull(lstAddenSuppResults.Column(5, lstAddenSuppResults.ListIndex)) Then
Exit Sub
Else
fpath = lstAddenSuppResults.Column(5, lstAddenSuppResults.ListIndex)
End If
Case 11
If IsNull(lstVideoResults.Column(5, lstVideoResults.ListIndex)) Then
Exit Sub
Else
fpath = lstVideoResults.Column(5, lstVideoResults.ListIndex)
End If
Case 12
If IsNull(lstTechTipsResults.Column(5, lstTechTipsResults.ListIndex)) Then
Exit Sub
Else
fpath = lstTechTipsResults.Column(5, lstTechTipsResults.ListIndex)
End If
Case 13
If IsNull(lstArchiveResults.Column(5, lstArchiveResults.ListIndex)) Then
Exit Sub
Else
fpath = lstArchiveResults.Column(5, lstArchiveResults.ListIndex)
End If
End Select
EmailDoc fpath
End Sub
这段代码是我创建的用于处理电子邮件操作的函数:
Function EmailDoc(ByVal fpath As String)
'Get Outlook if it isn't open already
Set outlookApp = CreateObject("Outlook.Application")
Set outlookItem = outlookApp.CreateItem(0)
If Err <> 0 Then
'Outlook wasn't running, start it
Set outlookApp = CreateObject("Outlook.Application")
Started = True
End If
With outlookItem
.to = ""
.Subject = "Requested Document"
.Body = "Thank you"
.attachments.Add (fpath)
.display
End With
End Function
任何帮助都将不胜感激。
【问题讨论】:
【参考方案1】:试试这两个链接:
cycling through values in a MS Access list box
https://support.microsoft.com/en-us/kb/827423
它们显示了处理多个列表框选择的两种不同方式。
【讨论】:
我认为这样的事情会让你朝着正确的方向前进。 fontstuff.com/access/acctut18.htm 或 fontstuff.com/access/acctut19.htm以上是关于从列表框中选择多个项目以附加到电子邮件中的主要内容,如果未能解决你的问题,请参考以下文章