设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4329|回复: 6
打印 上一主题 下一主题

[模块/函数] OUTLOOK2000的收件箱内容复制到ACCESS数据库

[复制链接]
跳转到指定楼层
1#
发表于 2008-1-27 09:33:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自己做的, 请各位达人指点一下:
Sub CopyMessages()
Const MailBox = "个人文件夹"
Dim Cnt As New ADODB.Connection
Dim Mbox As New ADODB.Recordset
Dim fld As ADODB.Field
Dim Hist As New ADODB.Recordset
Dim ConnectString As String
Dim conn As New ADODB.Connection
Dim cntstring As String
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" + "d:\vb\ado outlook\dbMessage.mdb" + ";Mode=Share Deny None"
conn.Open ConnectString
Hist.Open "tbl_Msg", conn, adOpenKeyset, adLockOptimistic '打开ACCESS数据库里的表

cntstring = "Provider=Microsoft.Jet.OLEDB.4.0;Outlook 9.0;MAPILEVEL=" & MailBox & "|收件箱;" & "DATABASE=C:\Temp\;"
Cnt.Open cntstring
Mbox.Open "select * from Official", Cnt '打开收件箱

Do Until Mbox.EOF
With Hist
    .AddNew
    !Msg_Sender = Mbox("来自")
    !Msg_Received = Mbox("已收到")
    !Msg_Subject = Mbox("主题")
    !Msg_Body = Mbox("内容")
    !Msg_Attch = Mbox("附件")
    .Update
End With
Mbox.MoveNext
Loop '把收件箱里的有关信息复制到ACCESS表

Mbox.Close
Set Mbox = Nothing
Cnt.Close
Set Cnt = Nothing
Hist.Close
Set Hist = Nothing
conn.Close
Set conn = Nothing
MsgBox "结束"
End Sub
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2008-1-29 08:53:28 | 只看该作者
。。。完了,没个库,我不懂得怎么搬用
3#
发表于 2008-3-11 23:36:48 | 只看该作者
楼主能否给个实例????
4#
发表于 2008-3-12 13:06:30 | 只看该作者

  1. Public Type OutlookEmail
  2.     EntryID As String '邮件的唯一条目标识
  3.     UnRead As Boolean   '未读标志
  4.     SenderName  As String   '发件人姓名
  5.     SenderEmailAddress    As String '发件人电子邮件地址
  6.     CC  As String    '抄送
  7.     BCC   As String     '秘密抄送
  8.     Subject    As String    '主题
  9.     LastModificationTime   As String   '发送日期和时间
  10.     Body   As String      '正文
  11.     HTMLBody As String      '正文
  12.     Size   As String    '大小
  13.     Importance As Integer    '重要性
  14.     IsAttachments As Boolean  '是否有附件
  15. End Type
  16. Public Function GetOutlookEmail(FolderType As Integer, EmailEntryID As String) As OutlookEmail
  17. On Error GoTo GetOutlookEmail_Err
  18. Dim myolApp As New Outlook.Application          '创建Outlook应用程序对象
  19. Dim myNamespace As Outlook.NameSpace
  20. Dim myFolder As Outlook.MAPIFolder
  21. Dim myattachments As Outlook.Attachments
  22. Dim i As Integer
  23. Dim olEmail As OutlookEmail
  24.     Set myNamespace = myolApp.GetNamespace("MAPI")              '获取MAPI命名空间
  25.     Set myFolder = myNamespace.GetDefaultFolder(FolderType)    '获取默认文件夹为收件箱
  26.     For i = 1 To myFolder.Items.Count
  27.         With myFolder.Items(i)
  28.             If EmailEntryID = .EntryID Then
  29.                 olEmail.EntryID = .EntryID
  30.                 olEmail.UnRead = .UnRead    '未读标志
  31.                 olEmail.SenderName = .SenderName    '发件人姓名
  32.                 olEmail.SenderEmailAddress = .SenderEmailAddress     '发件人电子邮件地址
  33.                 olEmail.CC = .CC   '抄送
  34.                 olEmail.BCC = .BCC      '秘密抄送
  35.                 olEmail.Subject = .Subject     '主题
  36.                 olEmail.LastModificationTime = .LastModificationTime    '发送日期和时间
  37.                 olEmail.Body = .Body        '正文
  38.                 olEmail.HTMLBody = .HTMLBody     '正文
  39.                 olEmail.Size = .Size      '大小
  40.                 olEmail.Importance = .Importance     '重要性
  41.                 olEmail.IsAttachments = IIf(.Attachments.Count > 0, True, False)
  42.             End If
  43.         End With
  44.      Next
  45.     GetOutlookEmail = olEmail
  46.     Set myolApp = Nothing
  47.     Set myNamespace = Nothing
  48.    Set myFolder = Nothing
  49.    
  50. GetOutlookEmail_Exit:
  51.     Exit Function
  52.    
  53. GetOutlookEmail_Err:
  54.    Set myolApp = Nothing
  55.    Set myNamespace = Nothing
  56.    Set myFolder = Nothing
  57.     MsgBox Err.Description, vbCritical, "提示"
  58.     Resume GetOutlookEmail_Exit
  59. End Function
复制代码
5#
发表于 2008-3-12 13:10:38 | 只看该作者
FolderType As Integer可以是枚举值:
olFolderInbox    6   “收件箱”文件夹。
olFolderDrafts 16   “草稿”文件夹。
olFolderJunk    23   “垃圾电子邮件”文件夹。
olFolderOutbox 4    “发件箱”文件夹。
olFolderSentMail 5 “已发送邮件”文件夹
6#
发表于 2008-3-12 13:12:17 | 只看该作者
用类似的方法还活跃获取outlook中的联系人,日历等东东。
7#
发表于 2008-3-12 14:20:42 | 只看该作者
可惜,没有实例.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-29 06:23 , Processed in 0.096904 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表