【发布时间】:2017-07-01 14:46:59
【问题描述】:
我被一些代码困住了。 我有一个表单,当我单击一个按钮时,它会将所有选定的记录发送到电子邮件正文中,其中包含这些记录中列出的电子邮件收件人。
将电子邮件添加到 Outlook“收件人”部分的部分如下:
With rst
Do While Not .EOF
strTO = strTO & ![EmailAddress] & ";"
.MoveNext
Loop
End With
olItem.Display
olItem.To = strTO
正如您从代码中看到的那样,它采用字符串strTO 并将来自[EmailAddress] 的值添加到记录中,以及; 然后移动到循环中的下一个记录。
我的问题是,有没有一种方法可以创建一个全局函数,您可以在执行代码的olItem.To = strTO 部分之前调用该函数,这基本上可以清理字符串,删除任何重复项?
编辑:发现我可以正确发布我的答案,而不是编辑我的问题。
【问题讨论】:
-
最好的办法是创建一个不包含重复项的记录集。检查选择不同。如果这不适合,请查看 VBA InStr,这将允许您在添加地址之前进行检查。
-
感谢您的评论,不幸的是 distinct 不起作用,因为我需要查看这些行的多行,但我不需要它来将额外的重复电子邮件地址添加到“收件人”栏。我正在研究我在网上找到的一些名为 RemoveDupWords2 的代码,它似乎可以满足我的要求,除非我调用我键入的函数 call RemoveDupWords2(strTO) 我得到 ByRef Arugment Mismatch 错误。所以我现在正在调查。
-
就像我提到的那样使用 InStr,它可以包裹你当前的代码并且快速简单。
-
你能澄清一下我将如何使用instr吗?我不太精通instr,但请不要只输入代码,我宁愿了解如何去做。我会去看一些 youtube 视频并阅读一些论坛以清楚地了解。
-
techonthenet.com/access/functions/string/instr.php 可以检查 emailaddress 中的电子邮件是否包含在 strTo 中,而不是添加到字符串中。
标签: vba string ms-access duplicates