Office中国论坛/Access中国论坛

标题: [转帖]使用Outlook和Access处理E-mail订单 [打印本页]

作者: zhuyiwen    时间: 2003-9-18 18:45
标题: [转帖]使用Outlook和Access处理E-mail订单
<br><FONT face=Verdana size=2>作者:Garry Robinson、Scott McManus著;<br>陶刚译<br>发文时间:2003.09.15 14:55:50<br><br>(原载于</FONT><a href="http://developer.ccidnet.com/pub/disp/Article?columnID=322&amp;articleID=63852&amp;pageNO=1" target="_blank" ><FONT face=Verdana size=2>http://developer.ccidnet.com/pub/disp/Article?columnID=322&amp;articleID=63852&amp;pageNO=1</FONT></A><FONT face=Verdana size=2> 赛迪网技术天地)<br><br>  本文讲解如何通过在线订单系统接收订单,并使用一些链接到Outlook的Access代码自动处理这些订单。 <br><br>  运行Web站点的最重要的部分之一是从客户哪儿接收订单的能力。拥有成功的、完整的、安全的Web站点订单系统的公司让人敬仰,但是很难达到这个目标。如果你拥有大量的成功使用这种订单系统的顾客,那么你的整个团队肯定很有天赋。对于世界上的另外一些Web站点,添加订单系统的最安全和最方便的方法是使用某种著名第三方软件。 <br><br>  本文演示了如何读取通过电子邮件下达的订单、把信息存储进数据库中、准备一封电子邮件通知新客户你已经接受了他们的订单、完成后把该电子邮件移动到另一个目录中。我们提供的示例从DigiBuy.com接收订单,这是一家第三方安全订单Web站点,它的客户有成百上千的软件开发者。尽管本文是用于DigiBuy.com的,但是我们此处使用的代码可以应用于任何Web窗体或使用统一的格式产生文本(DigiBuy.com)的软件系统。<br><br><STRONG>准备电子邮件</STRONG><br><br>  在我第一次考虑如何写这篇文章时,我在犹豫读者如何得到示例电子邮件订单以使用我们的示例软件。我们通过把示例订单建立在可以发送给自己的电子邮件的文本中解决了这个问题。为了生成这种电子邮件,我们编写了一些代码以建立一个Outlook实例,接着建立了一个新的Outlook电子邮件:<br></FONT>
<DIV class=quote><FONT face=Verdana size=2>Dim appOL As Outlook.Application<br>Dim testEmail As Outlook.MailItem<br><br>Set appOL = Outlook.Application<br>Set testEmail = appOL.CreateItem(olMailItem)<br>testE-mail.Subject = "Add your own e-mail address"<br></FONT></DIV><FONT face=Verdana size=2>  我通过一个读取文本文件的函数生成了一个测试订单。我使用的是getDbPath函数,它返回示例数据库的相对路径,该数据库是我们存储文本文件和电子邮件文本主体的地方:<br></FONT>
<DIV class=quote><FONT face=Verdana size=2>testE-mail.Body = TextFileToString_FX(GetDBPath_FX &amp;  "MyFirstOrder.txt")<br></FONT></DIV><FONT face=Verdana size=2>  最后,我显示了电子邮件,这样你就能修改任何细节信息并添加电子邮件地址。接着我们清除了该对象的引用,因为再也不需要它们了: <br></FONT>
<DIV class=quote><FONT face=Verdana size=2>testEmail.Display<br>Set testEmail = Nothing<br>Set appOL = Nothing<br></FONT></DIV>
<><FONT face=Verdana size=2>  如果你试图用多个订单测试系统,请在发送前改变电子邮件中的订单编号。图1显示了生成的示例订单,它的结构与你从DigiBuy.com接收到的订单电子邮件的结构是相同的。</FONT></P>
< align=center><FONT face=Verdana size=2><IMG src="http://developer.ccidnet.com/pub/attachment/2003/9/254521.jpg" border=0></FONT></P>
<><FONT face=Verdana size=2>图1:生成的示例订单<br><br><STRONG>导入文本文件</STRONG><br><br>  为了生成电子邮件消息的主体部分,我们发现最好的办法是把我们接收到的静态信息存储在文本文件中。这样看起来工作得很好,因为它允许你处理订单,即使你没有访问Outlook和Access数据库。它使用的通用的功能可以用于任何VBA程序中。它把文本文件的每一行读入一个长字符串,当遇到行的结尾时,就返回并添加到该字符串。<br></FONT></P>
<DIV class=quote><FONT face=Verdana size=2>Function TextFileToString_FX(fileName As String) As String<br><br>Dim stemp, linesfromfile, nextline As String<br>Dim iFIle As Integer<br><br>  TextFileToString_FX = ""<br>  On Error GoTo error_TextFileToString_FX<br>  <br>  iFIle = FreeFile<br>  Open fileName For Input As iFIle<br>  <br>  While Not EOF(1)  <br>    Line Input #1, nextline<br>    linesfromfile = linesfromfile + nextline _<br>      + Chr(13) + Chr(10)  Wend<br>  Close iFIle<br>     <br>  TextFileToString_FX = linesfromfile   <br>exit_TextFileToString_FX:<br>  Exit Function<br>error_TextFileToString_FX:<br>  MsgBox "Error opening file  " &amp; fileName _<br>   &amp; " with " &amp; Err.Description, vbCritical, _<br>    "Error Number " &amp; Err.Number  <br><br>End Function<br></FONT></DIV>
<P><FONT face=Verdana size=2>  如果你的订单包括多个部分,使用与订单的不同部分对应的文本文件也可以轻易
作者: eio    时间: 2003-9-18 18:51
应该不错,试试先!
作者: zhuyiwen    时间: 2006-3-3 22:05
确实是不错的文章!
作者: liguang    时间: 2006-4-5 06:21
太棒了!正是我需要的!万分感谢!!!
作者: ok003    时间: 2006-10-30 06:20
lz做一个样本哦?!
作者: chaojianan    时间: 2009-11-7 10:48
谢谢分享,学习学习。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3