论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
摘要:本文探讨了如何利用VB,读取数据库中的数据,通过Microsoft MAPI Controls 6.0控件,利用Outlook Express,从而实现成绩通知单以E-mail的形式自动寄发。
关键字:VB,E-mail, MAPI,自动寄发
一、问题提出
每期期未,寄发学生成绩通知单都是班主任的例行工作,然而,现在大多数人仍然还采用原始的平信寄发方式,并且由于平信很容易丢失而导致以前所做的工作(如抄录学生期末成绩、写出学生的学期鉴定,填写学生成绩通知单和写、写信封、寄发通知书等)前功尽弃,同时由于许多学生放假后并没有回家,如外去打工或因种种原因没有回家而无法收到信件。随着INTERNET技术的不断普及,电子邮件已经开始进入寻常百姓家,它以快速、方便、可以异地查阅而逐渐代替普通的信件,如果你的学生(或家长)都有E-mail,我们以E-mail来寄发学生的成绩通知单了,这样就可以减少上述弊端。但一个个填写每个学生的收件人地址和相关的数据(如各门功课的成绩、评语),既枯燥又烦锁,下面我们将探讨如何利用VB来读取学生成绩数据库中的数据,通过E-mail实现学生成绩通知单的自动寄发。
二、工作原理
学生成绩通知单各学校虽然有所不同,但大都大同小异,通常包括:学生各学科的成绩,操行分,班主任评语等内容(如上图)。如果这些内容都在数据库中,我们可以通过VB访问数据库来读取数据库中用户的E-mail地址、成绩及评语,再通过VB的Microsoft MAPI Controls 6.0控件中的MAPI Session和MAPI Messages两个控件进行电子邮件的管理,利用OutlookExpress。就能实现同时给班上所有学生用E-mail的自动发送通知书了。但由于各个学校成绩科目及多少不同,因此数据库中字段数就会不同,为使程序具有通用性,因此,在设计时我们使用了自动读取数据表中的字段个数和字段名,并自动在窗体上自动生成相对应的文本框和标签。
(转载自科教范文网http://fw.nseac.com)
Dim txtobject(20), lblObject(20)
Dim SendToText As String
Const M_Subject = "成绩通知单"
Private Sub Command2_Click()
Unload Me
End Sub
'定义一个用来回复(发送邮件)的函数
Public Function StarSend(T1, T2, T3)
MAPIMessages1.MsgIndex = -1
MAPIMessages1.RecipDisplayName = T1
MAPIMessages1.MsgSubject = T2
MAPIMessages1.MsgNoteText = T3
MAPIMessages1.SessionID = MAPISession1.SessionID
'MAPIMessages1.AttachmentPathName = "e:\My Documents\注意事项.htm" ' 确定要发送的电子邮件的附件
MAPIMessages1.Send
End Function
Private Sub Command1_Click()
Data1.Recordset.MoveFirst
MAPISession1.SignOn
Do While Data1.Recordset.EOF = False
Sum = Sum 1
' SendToText指的是发送邮件的内容(邮件正文)
SendToText = txtobject(1).Text "同学" Chr(13) Chr(10) "你好!" Chr(13) Chr(10)
SendToText = SendToText "现将你的成绩通知你,希望你在假期注意复习功课!" Chr(13) Chr(10)
'下面将自动获得各学科的名称和成绩
For i = 3 To Data1.Recordset.RecordCount
SendToText = SendToText lblObject(i).Caption ":" txtobject(i).Text "分" Chr(13) Chr(10)