visual basic 管理信息开发案例 作者 武新华 第5-7章 第5章 企业日常合同信息管理系统课件_第1页
visual basic 管理信息开发案例 作者 武新华 第5-7章 第5章 企业日常合同信息管理系统课件_第2页
visual basic 管理信息开发案例 作者 武新华 第5-7章 第5章 企业日常合同信息管理系统课件_第3页
visual basic 管理信息开发案例 作者 武新华 第5-7章 第5章 企业日常合同信息管理系统课件_第4页
visual basic 管理信息开发案例 作者 武新华 第5-7章 第5章 企业日常合同信息管理系统课件_第5页
已阅读5页,还剩183页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 企业日常合同信息管理系统,5.1 系统开发的功能分析 5.2 设计好自己的数据库 5.3 系统开发过程的实现 5.4 应用程序的打包和发布 5.5 相关开发技术介绍 5.6 最终运行结果的查看,在线教务辅导网:,教材其余课件及动画素材请查阅在线教务辅导网,QQ:349134187 或者直接输入下面地址:,,5.1 系统开发的功能分析,5.1.1 设计目标 本管理信息系统设计的主要目标在于对销售和购货两种不同合同的管理上。对这两种不同合同的管理主要从以下几个方面来实现。,1销售合同的管理 本系统所要处理的内容有:合同信息的录入、修改、删除、查询和打印,销售合同的收款审定和合同查询统计表等。其中包括合同约定的起止时间、销售合同编号、项目负责人、所在地区、项目性质以及合同的执行情况等。 其中,合同设备清单的查询主要由销售合同查询统计表和统计销售合同表两部分组成。,2购货合同的管理 本系统所要处理的内容有:合同信息的录入、删除、修改、查询和打印,购货合同修改凭证的录入、修改、删除、查询和打印,以及购货合同的查询统计等。其中包括合同起止时间、设备分类及合同编号。供应商的表格形式与销货合同相同。,5.1.2 需要实现的系统功能 为满足用户的工作需要,使公司的各项管理实现现代化,在确定了本系统的设计目标之后,特开发本公司管理信息系统,来完成各子系统之间的数据共享,实现需要的统一管理和自动数据传递;同时保证总经理系统能够对公司的整体工作进行管理、查询和监督等操作,这也是我们在本系统中要重点实现的系统功能。,5.1.3 开发和运行环境 开发工具:Visual Basic 6.0中文版,后台所用数据库是Access 2000,同时建立ODBC数据库接口,完成多人共享操作的C/S结构。 运行环境:服务器为Windows NT Server 4.0以上版本;客户机为装有Windows 98以上版本的操作系统;服务器数据库采用Microsoft SQL Server 7.0或Access。,5.1.4 系统功能模块的设计 根据企业日常工作中的实际需求,结合实际管理情况的模块分析,本系统在设计时所要实现的主要功能如下: (1) 确立以公司总经理和财务部门为中心的管理模式,以及与各业务部门之间存在的业务关系。 (2) 确保公司总经理能够及时了解公司的各种经营情况,并得到详尽、客观的数据。,(3) 公司各业务部门间能够实现及时的相互沟通,以确保能够掌握工作的进展情况。 (4) 本系统数据库由专人统一进行管理,并保证数据的安全和网络系统的运转正常。,5.2 设计好自己的数据库,根据公司的合同管理流程,结合上述的各功能需求,本系统将利用Access数据库实现表的建立,并通过Access数据库实现数据存储和管理。同时建立ODBC数据库接口,完成多人共享操作的C/S结构。当然,通过ODBC方式和标准的SQL语言,也可以升迁为SQL Server等数据库进行处理。,各表格的字段名称、数据类型及字段大小在以下表格中都有明确的说明,读者可以按照这些说明来使用Access设计表格。 (1) 付款申请表如表5-2-1所示。 (2) 付款类别信息表如表5-2-2所示。 (3) 付款方式信息表如表5-2-3所示。 (4) 客户信息表如表5-2-4所示。,表5-2-1 付款申请表,表5-2-2 付款类别信息表,表5-2-3 付款方式信息表,表5-2-4 客户信息,(5) 供应商信息表如表5-2-5所示。 (6) 币种信息表如表5-2-6所示。 (7) 合同审批表如表5-2-7所示。 (8) 职员信息表如表5-2-8所示。 (9) 工程进度和人员配置情况表如表5-2-9所示。 (10) 施工单位档案表如表5-2-10所示。 (11) 设备清单表如表5-2-11所示。,表5-2-5 供应商信息表,表5-2-6 币种信息表,表5-2-7 合同审批表,表5-2-8 职员信息表,表5-2-9 工程进度和人员配置情况表,表5-2-10 施工单位档案表,表5-2-11 设备清单表,(12) 设备目录表如表5-2-12所示。 (13) 设备分类信息表如表5-2-13所示。 (14) 收款类别信息表如表5-2-14所示。 (15) 购货合同登记表如表5-2-15所示。 (16) 购货合同供应商表如表5-2-16所示。,表5-2-12 设备目录表,表5-2-13 设备分类信息表,表5-2-14 收款类别信息表,表5-2-15 购货合同登记表,表5-2-16 购货合同供应商表,(17) 购货合同表如表5-2-17所示。 (18) 购货合同设备表如表5-2-18所示。 (19) 购货合同纳税表如表5-2-19所示。 (20) 购货合同付款表如表5-2-20所示。 (21) 购货合同付款审定单表如表5-2-21所示。 (22) 购货合同到货情况表如表5-2-22所示。,表5-2-17 购货合同表,表5-2-18 购货合同设备表,表5-2-19 购货合同纳税表,表5-2-20 购货合同付款表,表5-2-21 购货合同付款审定表,表5-2-22 购货合同到货情况表,(23) 购货合同付款情况表,如表5-2-23所示。 (24) 销货合同登记表如表5-2-24所示。 (25) 销货合同表如表5-2-25所示。 (26) 销货合同客户资料表如表5-2-26所示。 (27) 销售合同收款审定表如表5-2-27所示。,表5-2-23 购货合同付款情况表,表5-2-24 销货合同登记表,表5-2-25 销货合同表,表5-2-26 销货合同客户资料表,表5-2-27 销售合同收款审定表,(28) 销货合同交货情况如表5-2-28所示。 (29) 销货合同设备表如表5-2-29所示。(本节最后给出了在Access中的设计视图,如图5-2-1所示) (30) 销货合同交货方式如表5-2-30所示。 (31) 销货合同收款表如表5-2-31所示。,表5-2-28 销货合同交货情况表,表5-2-29 销货合同设备表,图5-2-1 销货合同设备表视图,表5-2-30 销货合同交货方式表,表5-2-31 销货合同收款表,(32) 销货合同收款情况表如表5-2-32所示。 (33) 销货合同纳税表如表5-2-33所示。 (34) 合同的项目信息表如表5-2-34所示。,表5-2-32 销货合同收款情况表,表5-2-33 销货合同纳税表,表5-2-34 项目信息表,5.3 系统开发过程的实现,5.3.1 公用程序模块(Module1.bas)的设计 首先我们来看一下标准模块Module1中的内容:该程序模块定义了使用的全部全局变量和函数,同时作为程序启动函数Main的定义部分。通常情况下,我们可以在Visual Basic程序中建立这样的模块程序,以便进行整个系统的各种公用变量和函数的初始化。,该模块的设计代码如下: Global fMainForm As MDIMain Global Constring As String Global curWork As String Sub Main() Constring = “PROVIDER=MSDASQL;driver=SQL Server;server=wlf;uid=sa;pwd=; database=e_ms;“ Set fMainForm = New MDIMain fMainForm.Show End Sub,5.3.2 设计系统的主窗体(MDIMain) 用户可以通过该界面来调用本系统中的各种其他处理功能。由于该模块是整个系统启动后出现的主窗体,并且,该窗体使用了MDI窗体形式,其他被调用的窗体都作为子窗体出现在该窗体的内部,如图5-3-1所示,因此,该窗体同时也是用户操作的主要界面部分。,我们可以看到,在主窗体中有菜单栏、工具栏、TreeView控件与MSHFlexGrid数据绑定控件等。用户只要通过单击窗体上部的各个菜单项就可以执行其相对应的功能。例如:用户可以通过单击【执行】和【工具】这两个菜单项来调用其他的窗体。本窗体中的对象主要是各个菜单项及其下属的各个子菜单。 本界面将要实现提供调用其他程序的菜单选择和显示当前合同信息的功能。每次启动程序后都自动提醒这两方面的功能。,图5-3-1 系统主界面,为本窗体中各控件添加的代码如下: Private Sub MDIForm_Load( ) Dim code As String code = GetSetting(“e_ms“, “personal“, “职员编号“, Default:=“ “) If code = “ “ Then dlgRegister.Show (1) End If,Picture1.Align = vbAlignLeft Picture1.Width = TreeView1.Width Picture2.Align = vbAlignRight Fill_Tree End Sub,接下来是要编写该菜单中通用的数据处理函数,该函数的功能是根据当前活动窗体来调用窗体上对应的ADO控件的数据记录处理功能。但在这里,只要每个窗体上的ADO名称相同,则这种操作都将是规范和统一的。这时需要添加如下设计代码:,Private Sub MDIForm_Resize( ) Picture2.Width = Me.Width - Picture1.Width End Sub Private Sub menuEditAdd_Click( ) Me.ActiveForm.cmdAdd.Value = True End Sub Private Sub menuEditDelete_Click( ) Call Me.ActiveForm.cmdDelete_Click End Sub,Private Sub menuEditRefresh_Click( ) Call Me.ActiveForm.cmdRefresh_Click End Sub Private Sub menuEditUpdate_Click( ) Call Me.ActiveForm.cmdUpdate_Click End Sub Private Sub menuExcuteA_Click( ) frm_设备交款情况.Show End Sub,Private Sub menuExcuteI_Click( ) frm_合同收款情况.Show End Sub Private Sub menuFileClose_Click( ) Unload Me.ActiveForm End Sub Private Sub menuFileNew_Click( ) dlgNew.Show (1),Select Case curWork Case “销货合同“ frm_销货合同.Show Case “购货合同“ frm_购货合同.Show End Select End Sub,接着来输入如下代码,使得本系统能够根据用户操作来选择其对应的处理程序: Private Sub menuFileOpen_Click( ) dlgOpen.Show (1) Select Case curWork Case “统计报表“ prjEMS.frmReport.Show Case “收款情况报表“ prjEMS.frm_销货合同收款情况.Show Case “付款情况报表“,prjEMS.frm_购货合同付款情况.Show Case “销货合同执行情况报表“ prjEMS.frm_销货合同交货情况.Show Case “购货合同执行情况报表“ Case “销货合同完成情况报表“ Case “购货合同完成情况报表“ End Select End Sub,当程序运行到这里的时候,上面的Select Case语句将可以实现对其他的窗体和报表的调用。例如:prjEMS.frm_购货合同付款情况、购货合同执行情况报表、销货合同完成情况报表、购货合同完成情况报表等。其设计代码如下:,Private Sub menuFileSend_Click( ) dlgSend.Show (1) End Sub Private Sub menuToolOption_Click( ) dlgOption.Show (1) End Sub Private Sub menuViewInfo_Click( ) dlgReply.Show (1) End Sub,接下来的程序主要用来构造系统各种功能的树状操作选项,用户可以通过填充TreeView控件来实现这个功能,并能够同时构造出它的子树内容。具体的设计代码如下:,Function Fill_Tree( ) Dim i1 As Long, i2 As Long, i3 As Long Dim no1 As Node, no2 As Node Dim roots(6), childs(6, 8) As String roots(0) = “辅助信息“ childs(0, 0) = “供应商信息“ childs(0, 1) = “客户信息“ childs(0, 2) = “币种信息“ childs(0, 3) = “收款类别信息“ childs(0, 4) = “职员信息“,childs(0, 5) = “设备分类信息“ childs(0, 6) = “设备清单表“ childs(0, 7) = “设备目录“ roots(1) = “付款信息“ childs(1, 0) = “付款申请表“ childs(1, 1) = “付款方式信息“ childs(1, 2) = “付款类别信息“ roots(2) = “购货合同处理“ childs(2, 0) = “购货合同“ childs(2, 1) = “购货合同付款审定单“ childs(2, 2) = “购货合同付款情况“ childs(2, 3) = “购货合同供应商表“,childs(2, 4) = “购货合同到货情况“ childs(2, 5) = “购货合同登记表“ roots(3) = “销货合同处理“ childs(3, 0) = “销货合同“ childs(3, 1) = “销售合同收款审定单“ childs(3, 2) = “销货合同交货情况“ childs(3, 3) = “销货合同交货方式“ childs(3, 4) = “销货合同客户资料表“ childs(3, 5) = “销货合同收款情况“ childs(3, 6) = “销货合同登记表“ roots(4) = “工程施工管理“ childs(4, 0) = “工程进度和人员配置情况“,childs(4, 1) = “施工队档案“ roots(5) = “项目管理“ childs(5, 0) = “项目信息“ For i1 = 0 To 5 Set no1 = TreeView1.Nodes.Add(, , , roots(i1), 2) no1.Tag = roots(i1) For i2 = 0 To 7 If childs(i1, i2) = “ “ Then Exit For End If,Set no2 = TreeView1.Nodes.Add(no1.Index, tvwChild, , childs(i1, i2), 1) no2.Tag = childs(i1, i2) no2.ForeColor = vbBlue Next Next set properties common to all nodes For i1 = 1 To TreeView1.Nodes.Count TreeView1.Nodes(i1).ExpandedImage = 2 Next,End Function Private Sub menuViewOther_Click( ) Picture2.Visible = True End Sub,程序运行到这里时,将会出现TreeView中的项目被选择的情况,这时候用户只要控制对应的处理程序,并调用其所对应的操作界面就可以了。具体的设计代码如下: Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node) Select Case Node.Tag Case “供应商信息“, “客户信息“, “币种信息“, “收款类别信息“, “职员信息“, “设备分类信息“, “设备清单表“, “设备目录“,Picture2.Visible = False dlgOption.Show Case “付款申请表“ prjEMS.frm付款申请表.Show Case “付款方式信息“, “付款类别信息“ Picture2.Visible = False dlgOption.Show Case “购货合同“ Picture2.Visible = False frm_购货合同.Show Case “购货合同付款审定单“ prjEMS.frm购货合同付款审定单.Show,Case “购货合同付款情况“ prjEMS.frm_购货合同付款情况.Show Case “购货合同供应商表“ prjEMS.frm购货合同供应商表.Show Case “购货合同到货情况“ prjEMS.frm_购货合同到货情况.Show Case “购货合同登记表“ prjEMS.frm购货合同登记表.Show Case “销货合同“ prjEMS.frm_销货合同.Show Case “销售合同收款审定单“ prjEMS.frm销售合同收款审定单.Show,Case “销货合同交货情况“ prjEMS.frm_销货合同交货情况.Show Case “销货合同交货方式“ prjEMS.frm销货合同交货方式.Show Case “销货合同客户资料表“ prjEMS.frm销货合同客户资料表.Show Case “销货合同收款情况“ prjEMS.frm_销货合同收款情况.Show Case “销货合同登记表“ prjEMS.frm销货合同登记表.Show Case “工程进度和人员配置情况“ prjEMS.frm_工程进度和人员配置情况.Show Case “施工队档案“,Picture2.Visible = False dlgOption.Show Case “项目信息“ Picture2.Visible = False dlgOption.Show End Select End Sub,5.3.3 付款情况登记窗体的设计 购货合同的付款登记情况界面主要用来实现对合同付款的情况进行登记,如图5-3-2所示。当合同付款完成之后,用户就可以通过调用该程序来记录合同付款的相关信息。本窗体界面的设计通过Visual Basic向导就可以完成。,图5-3-2 购货合同付款登记情况,在本窗体界面中,使用了Visual Basic中常用的一些控件,如VB.CommandButton cmdAdd、VB.CommandButton cmdClose、VB.CommandButton cmdRefresh、VB.Label lb1Labels、VB.CommandButton cmdDelete、VB.CommandButton cmdUpdate、VB.TextBox txtFields和MSAdodcLib.Adodc datPrimaryRS等。 在本窗体界面中程序需要实现完成合同付款信息的录入和能够对所录入的信息进行修改两方面的功能。,本窗体中各代码的功能主要是用来对购货合同付款情况的数据进行处理。我们可以在如图5-3-2所示窗体所画出的文本框中,填写“公司合同号”、“付款类型”、“应付金额”、“实付金额”等,然后点击窗体下部的五个CommandButton(每一个CommandButton都有一个事件过程,每一个事件过程都需要实现一个特定的功能),执行相应的功能。,本窗体的具体设计代码如下: Private Sub Form_Unload(Cancel As Integer) Screen.MousePointer = vbDefault End Sub,Private Sub datPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean) 错误处理程序代码置于此处 想要忽略错误,注释掉下一行 想要捕获它们,在此添加代码以处理它们 MsgBox “Data error event hit err:“ & Description End Sub,Private Sub datPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 为这个 Recordset 显示当前记录位置 datPrimaryRS.Caption = “Record: “ & CStr(datPrimaryRS.Recordset.AbsolutePosition) End Sub,Private Sub datPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReason Enum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 验证代码置于此处 下列动作发生时该事件被调用 Dim bCancel As Boolean,Select Case adReason Case adRsnAddNew Case adRsnClose Case adRsnDelete Case adRsnFirstChange Case adRsnMove Case adRsnRequery Case adRsnResynch Case adRsnUndoAddNew Case adRsnUndoDelete Case adRsnUndoUpdate Case adRsnUpdate End Select,If bCancel Then adStatus = adStatusCancel End Sub Private Sub cmdAdd_Click( ) On Error GoTo AddErr datPrimaryRS.Recordset.AddNew Exit Sub AddErr: MsgBox Err.Description End Sub,Private Sub cmdDelete_Click( ) On Error GoTo DeleteErr With datPrimaryRS.Recordset .Delete .MoveNext If .EOF Then .MoveLast End With Exit Sub DeleteErr: MsgBox Err.Description End Sub,Private Sub cmdRefresh_Click( ) 只有多用户应用程序需要 On Error GoTo RefreshErr datPrimaryRS.Refresh Exit Sub RefreshErr: MsgBox Err.Description End Sub Private Sub cmdUpdate_Click( ) On Error GoTo UpdateErr,datPrimaryRS.Recordset.UpdateBatch adAffectAll Exit Sub UpdateErr: MsgBox Err.Description End Sub Private Sub cmdClose_Click( ) Unload Me End Sub,5.3.4 设计购货合同处理相关程序界面 该程序主要用来实现与购货合同相关信息的处理,主要包括购货合同、合同付款、合同设备以及合同纳税等相关信息的录入,同时还可以将合同正文保存到本系统的数据库中以备以后查阅。 本窗体界面容器中的程序需要实现登记与购货合同相关的信息和录入并保存合同正文两方面的功能。,在本窗体界面的设计中,所要使用到的控件有:VB.PictureBox picButtons、VB.TextBox txtFields、MSAdodcLib.Adodc datphmaryRS、VB.CommandButton cmdClose、VB.Label lb1Labels、VB.CommandButton cmdUpdate、VB.CommandButton cmdRefresh、VB.Command Button cmdDelete和VB.CommandButton cmdAdd。 本购货合同处理的相关程序窗体界面如图5-3-3所示。,本窗体中各控件的功能主要是用来对购物合同相关信息情况的数据进行处理。我们可以在如图5-3-3所示窗体所画出的文本框中,填写“公司合同号”、“项目编号”、“设备总价”等,然后点击窗体下部的五个CommandButton,实现特定的功能。,图5-3-3 录入购货合同的各种信息界面,本窗体的具体设计代码如下: Option Explicit Private Sub Form_Load( ) With tempPrimaryRS .ConnectionString = datPrimaryRS(SSTab1.Tab).ConnectionString .CursorType = datPrimaryRS(SSTab1.Tab).CursorType .RecordSource = datPrimaryRS(SSTab1.Tab).RecordSource .Refresh End With End Sub,Private Sub Form_Unload(Cancel As Integer) Screen.MousePointer = vbDefault End Sub Private Sub SSTab1_Click(PreviousTab As Integer) With tempPrimaryRS .ConnectionString = datPrimaryRS(SSTab1.Tab).ConnectionString .CursorType = datPrimaryRS(SSTab1.Tab).CursorType .RecordSource = datPrimaryRS(SSTab1.Tab).RecordSource .Refresh End With End Sub,Private Sub tempPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean) 错误处理程序代码置于此处 想要忽略错误,注释掉下一行 想要捕获它们,在此添加代码以处理它们 MsgBox “Data error event hit err:“ & Description End Sub,Private Sub tempPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReason Enum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 为这个Recordset 显示当前记录位置 tempPrimaryRS.Caption = “Record: “ & CStr(tempPrimaryRS.Recordset.AbsolutePosition) End Sub,Private Sub tempPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReason Enum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 验证代码置于此处 下列动作发生时该事件被调用 Dim bCancel As Boolean,Select Case adReason Case adRsnAddNew Case adRsnClose Case adRsnDelete Case adRsnFirstChange Case adRsnMove Case adRsnRequery Case adRsnResynch Case adRsnUndoAddNew Case adRsnUndoDelete Case adRsnUndoUpdate Case adRsnUpdate End Select,If bCancel Then adStatus = adStatusCancel End Sub Private Sub cmdAdd_Click( ) On Error GoTo AddErr tempPrimaryRS.Recordset.AddNew Exit Sub AddErr: MsgBox Err.Description End Sub,Private Sub cmdDelete_Click( ) On Error GoTo DeleteErr With tempPrimaryRS.Recordset .Delete .MoveNext If .EOF Then .MoveLast End With Exit Sub DeleteErr: MsgBox Err.Description End Sub,Private Sub cmdRefresh_Click( ) 只有多用户应用程序需要 On Error GoTo RefreshErr tempPrimaryRS.Refresh Exit Sub RefreshErr: MsgBox Err.Description End Sub Private Sub cmdUpdate_Click( ) On Error GoTo UpdateErr,tempPrimaryRS.Recordset.UpdateBatch adAffectAll Exit Sub UpdateErr: MsgBox Err.Description End Sub Private Sub cmdClose_Click( ) Unload Me End Sub,5.3.5 设计销货合同处理相关窗体界面 本销货合同处理的相关窗体界面程序利用了Visual Basic基本的数据处理功能,通过使用ADO来完成数据库记录的基本信息处理。如图5-3-4所示,从中不难看出,该窗体界面的功能与购货合同处理相关窗体界面类似,只是其数据库表为销货合同表格而已。,图5-3-4 合同录入界面,同时,在本窗体容器中所使用的控件也与其他界面的相同,这主要是因为本系统所使用的操作都是标准的,并且其使用的控件以及相关的操作方法也极为雷同。 本窗体的具体设计代码如下:,Option Explicit Private Sub Form_Load( ) With tempPrimaryRS .ConnectionString = datPrimaryRS(SSTab1.Tab).ConnectionString .CursorType = datPrimaryRS(SSTab1.Tab).CursorType .RecordSource = datPrimaryRS(SSTab1.Tab).RecordSource .Refresh End With End Sub,Private Sub Form_Unload(Cancel As Integer) Screen.MousePointer = vbDefault End Sub Private Sub SSTab1_Click(PreviousTab As Integer) With tempPrimaryRS .ConnectionString = datPrimaryRS(SSTab1.Tab).ConnectionString .CursorType = datPrimaryRS(SSTab1.Tab).CursorType .RecordSource = datPrimaryRS(SSTab1.Tab).RecordSource .Refresh End With End Sub,Private Sub tempPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean) 错误处理程序代码置于此处 想要忽略错误,注释掉下一行 想要捕获它们,在此添加代码以处理它们 MsgBox “Data error event hit err:“ & Description End Sub,Private Sub tempPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReason Enum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 为这个Recordset 显示当前记录位置 tempPrimaryRS.Caption = “Record: “ & CStr(tempPrimaryRS.Recordset.AbsolutePosition) End Sub,Private Sub tempPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReason Enum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 验证代码置于此处 下列动作发生时该事件被调用 Dim bCancel As Boolean,Select Case adReason Case adRsnAddNew Case adRsnClose Case adRsnDelete Case adRsnFirstChange Case adRsnMove Case adRsnRequery Case adRsnResynch Case adRsnUndoAddNew Case adRsnUndoDelete Case adRsnUndoUpdate Case adRsnUpdate End Select,If bCancel Then adStatus = adStatusCancel End Sub Private Sub cmdAdd_Click( ) On Error GoTo AddErr tempPrimaryRS.Recordset.AddNew Exit Sub AddErr: MsgBox Err.Description End Sub,Private Sub cmdDelete_Click( ) On Error GoTo DeleteErr With tempPrimaryRS.Recordset .Delete .MoveNext If .EOF Then .MoveLast End With Exit Sub DeleteErr: MsgBox Err.Description End Sub,Private Sub cmdRefresh_Click( ) 只有多用户应用程序需要 On Error GoTo RefreshErr tempPrimaryRS.Refresh Exit Sub RefreshErr: MsgBox Err.Description End Sub Private Sub cmdUpdate_Click( ) On Error GoTo UpdateErr,tempPrimaryRS.Recordset.UpdateBatch adAffectAll Exit Sub UpdateErr: MsgBox Err.Description End Sub Private Sub cmdClose_Click( ) Unload Me End Sub,5.3.6 设计工程施工管理的相关程序界面 该工程施工管理的相关程序界面设计利用了Visual Basic基本的数据处理功能,通过使用ADO来完成数据库记录的基本信息处理。该窗体界面主要用来处理企业在工程施工过程中的相关信息记录。,在本窗体界面的设计中,所要使用到的控件有:VB.PictureBox picButtons、MSAdodc Lib.Adodc datPrimaryRS、VB.CommandButton cmdClose、VB.CommandButton cmdRefresh、VB.CommandButton CmdDelete、VB.CommandButton cmdUpdate、VB.Label lb1Labels、VB.CommandButton cmdAdd、TabDlg.SSTab SSTab1和VB.TextBox txtFields等。 本工程施工管理的相关程序窗体界面如图5-3-5所示,其界面窗体容器中程序所要实现的功能为录入企业的工程施工信息和录入与企业工程施工相关的其它辅助信息。,图5-3-5 工程施工管理相关信息处理界面,本窗体中各控件的功能主要是用来对企业工程施工管理相关信息情况的数据进行处理。我们可以在如图5-3-5所示窗体所画出的文本框中,填写“施工单位编号”、“名称”、“联系人”等,然后点击窗体下部的五个CommandButton,实现特定的功能。,本窗体的具体设计代码如下: Option Explicit Private Sub cmdClose_Click( ) Unload Me End Sub Private Sub Form_Load( ) With tempPrimaryRS,.ConnectionString = datPrimaryRS(SSTab1.Tab).ConnectionString .CursorType = datPrimaryRS(SSTab1.Tab).CursorType .RecordSource = datPrimaryRS(SSTab1.Tab).RecordSource End With End Sub Private Sub Form_Unload(Cancel As Integer) Screen.MousePointer = vbDefault End Sub,Private Sub SSTab1_Click(PreviousTab As Integer) With tempPrimaryRS .ConnectionString = datPrimaryRS(SSTab1.Tab).ConnectionString .CursorType = datPrimaryRS(SSTab1.Tab).CursorType .RecordSource = datPrimaryRS(SSTab1.Tab).RecordSource End With End Sub,Private Sub tempPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean) 错误处理程序代码置于此处 想要忽略错误,注释掉下一行 想要捕获它们,在此添加代码以处理它们 MsgBox “Data error event hit err:“ & Description End Sub,Private Sub tempPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReason Enum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 为这个Recordset 显示当前记录位置 datPrimaryRS.Caption = “Record: “ & CStr(datPrimaryRS.Recordset.AbsolutePosition) End Sub,Private Sub tempPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReason Enum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 验证代码置于此处 下列动作发生时该事件被调用 Dim bCancel As Boolean,Select Case adReason Case adRsnAddNew Case adRsnClose Case adRsnDelete Case adRsnFirstChange

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论