下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用VB实现班主任工作的电子化
摘要:本文探讨了如何利用VB,读取数据库中的数据,通过MicrosoftMAPIControls6.0控件,利用OutlookExpress,从而实现成绩通知单以E-mail的形式自动寄发。关键字:VB,E-mail,MAPI,自动寄发一、问题提出每期期未,寄发学生成绩通知单都是班主任的例行工作,然而,现在大多数人仍然还采用原始的平信寄发方式,并且由于平信很容易丢失而导致以前所做的工作(如抄录学生期末成绩、写出学生的学期鉴定,填写学生成绩通知单和写、写信封、寄发通知书等)前功尽弃,同时由于许多学生放假后并没有回家,如外去打工或因种种原因没有回家而无法收到信件。随着INTERNET技术的不断普及,电子邮件已经开始进入寻常百姓家,它以快速、方便、可以异地查阅而逐渐代替普通的信件,如果你的学生(或家长)都有E-mail,我们以E-mail来寄发学生的成绩通知单了,这样就可以减少上述弊端。但一个个填写每个学生的收件人地址和相关的数据(如各门功课的成绩、评语),既枯燥又烦锁,下面我们将探讨如何利用VB来读取学生成绩数据库中的数据,通过E-mail实现学生成绩通知单的自动寄发。二、工作原理学生成绩通知单各学校虽然有所不同,但大都大同小异,通常包括:学生各学科的成绩,操行分,班主任评语等内容(如上图)。如果这些内容都在数据库中,我们可以通过VB访问数据库来读取数据库中用户的E-mail地址、成绩及评语,再通过VB的MicrosoftMAPIControls6.0控件中的MAPISession和MAPIMessages两个控件进行电子邮件的管理,利用OutlookExpress。就能实现同时给班上所有学生用E-mail的自动发送通知书了。但由于各个学校成绩科目及多少不同,因此数据库中字段数就会不同,为使程序具有通用性,因此,在设计时我们使用了自动读取数据表中的字段个数和字段名,并自动在窗体上自动生成相对应的文本框和标签。三、程序设计1、
启动VB后,新建一个标准的EXE工程2、
在“工具”菜单中选“部件”,在“控件”选项卡中选“MicrosoftMAPIControls6.0”,在控件工具箱中将邮件控件MAPIMessages和MAPISession两个控件添加到窗体中。2、添加两个命令按钮,将其CAPTION属性设计为“全部发送”和“退出”。3、添加一个数据控件(Data1),并设置“Connect”、“DataBaseName”和“RecordSource”对应的属性。上述三个控件最好放在窗体的下方。4.编写源程序代码:将下面的代码添加到代码窗口中Dimtxtobject(20),lblObject(20)DimSendToTextAsStringConstM_Subject="成绩通知单"PrivateSubCommand2_Click()UnloadMeEndSub'定义一个用来回复(发送邮件)的函数PublicFunctionStarSend(T1,T2,T3)MAPIMessages1.MsgIndex=-1MAPIMessages1.RecipDisplayName=T1MAPIMessages1.MsgSubject=T2MAPIMessages1.MsgNoteText=T3MAPIMessages1.SessionID=MAPISession1.SessionID'MAPIMessages1.AttachmentPathName="e:\MyDocuments\注意事项.htm"'确定要发送的电子邮件的附件MAPIMessages1.SendEndFunctionPrivateSubCommand1_Click()Data1.Recordset.MoveFirstMAPISession1.SignOnDoWhileData1.Recordset.EOF=FalseSum=Sum+1'SendToText指的是发送邮件的内容(邮件正文)SendToText=txtobject(1).Text+"同学"+Chr(13)+Chr(10)+"你好!"+Chr(13)+Chr(10)SendToText=SendToText+"现将你的成绩通知你,希望你在假期注意复习功课!"+Chr(13)+Chr(10)'下面将自动获得各学科的名称和成绩
Fori=3ToData1.Recordset.RecordCountSendToText=SendToText+lblObject(i).Caption+":"+txtobject(i).Text+"分"+Chr(13)+Chr(10)
NextSendToText=SendToText+"班主任:刘友生"+Chr(13)+Chr(10)SendToText=SendToText+"湖南省衡阳经济贸易学校"+Chr(13)+Chr(10)SendToText=SendToText+"发信日期:"+Data$+"发信时间:"+Time$GetTxtName’调用函数CallStarSend(txtobject(2).Text,M_Subject,SendToText)Data1.Recordset.MoveNextIfData1.Recordset.EOF=TrueThen
MsgBoxStr(Sum)+"个人员的成绩通知单已经发送完毕!",,"发送邮件"
EndEndIfLoopEndSubPrivateSubGetFieldNum()Data1.Recordset.MoveFirst'自动获得数据表中字段数并在窗体中自动生成相应文本框和标签Fori=1ToData1.Recordset.Fields.Count
b$="Text_"+LTrim(Str(i))
b1$="Label_"+Trim(Str(i)
Settxtobject(i)=Form1.Controls.Add("VB.TextBox",b$)
SetlblObject(i)=Form1.Controls.Add("VB.Label",b1$)’下面是用来确定标签和文本框中窗体中的位置
txtobject(i).Visible=True
lblObject(i).Visible=True
txtobject(i).Width=2000
lblObject(i).Width=1200
txtobject(i).Height=350
lblObject(i).Height=350
IfiMod2=0Thentxtobject(i).Left=4200lblObject(i).Left=3400
Elsetxtobject(i).Left=1200lblObject(i).Left=200
EndIf
Ifi>1Thentxtobject(i).Top=txtobject(i-1).Top+400lblObject(i).Top=txtobject(i-1).Top+400
Elsetxtobject(i).Top=300lblObject(i).Top=300
EndIf
IfiMod2=0Then
txtobject(i).Top=txtobject(i-1).Top
lblObject(i).Top=txtobject(i-1).Top
EndIfNexttxtobject(i-1).Width=Form1.Width-1500IfiMod2=1ThenlblObject(i-1).Left=200lblObject(i-1).Top=lblObject(i-1).Top+400txtobject(i-1).Left=1200txtobject(i-1).Top=txtobject(i-1).Top+400EndIfEndSubPublicFunctionGetLabelName()Fori=1ToData1.Recordset.Fields.Counttxtobject(i).Text=Data1.Recordset.Fields(i-1)lblObject(i).Caption=Data1.Recordset.Fields(i-1).SourceFieldNextEndFunctionPublicFunctionGetTxtName()Fori=1ToData1.Recordset.Fields.Counttxtobject(i).Text=Data1.Recordset.Fields(i-1)NextEndFunctionPrivateSubForm_Activate()Data1.Recordset.MoveFirstGetFieldNumGetLabelNameEndSub四、几点说明1、
本程序在WIN98、IE5.0、拨号上网下调试通过。2、
本程序具有许多自动功能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论