毕业设计论文-计算机类_第1页
毕业设计论文-计算机类_第2页
毕业设计论文-计算机类_第3页
毕业设计论文-计算机类_第4页
毕业设计论文-计算机类_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、 图5-3货品信息管理数据流程图5.6数据库的设计本库存管理系统是应用在单机系统上的,所以只需建立起一个数据库,在此数据库基础上建立起表格,现将部分数据结构描述如以下各表所示:表5-1货品信息表字段名数据类型字段长度是否为空货品编码文本5货品名称文本10类别文本8型号文本4单位文本2仓库编码文本5存放仓库文本12入库计划单价货币出库计划单价货币续前页表5-1货品信息表字段名数据类型字段长度是否为空原始库存数字长整型默认货位文本5警戒底线库存数字长整型警戒高线库存数字长整型注意表的基本信息关键字的设置,可以帮助用户快速检索,查询相关的信息,在VB中的关键字的设置不能为空.警戒底线库存是为了保证企

2、业业务的顺利进行,一个公司如果业务很广泛,那为了开展新业务或应对可能出现的意外事故,需要有一个最少的库存限制,而关于警戒高线库存是根据市场情况以及生产销售情况来决定库存最大数量,倘若客户退单或发生其他意外情况,企业对于库存有足够的缓冲能力,而不至于造成不可挽回的损失。表5-2入库登记表字段名数据类型字段长度是否为空入库日期日期/时间入库单号文本10货物编码文本5数量数字长整型进货价货币总额货币已付货款货币供货单位编码文本5供货单位文本20经办人编码文本5经办人文本8增值税率数字单精度型备注备注将基本信息登记入库以便于填写入库单,更新,删除入库记录,查看现有库存信息,入库记录的查询及打印。关于库

3、存中的物品都有增殖和贬值的可能,因此,要注意库存中物品价格的变化,该抛出时赶紧抛出,该价格调整要及时进行。表5-3出库登记表字段名数据类型字段长度是否为空出库日期日期/时间出库单号文本10货物编码文本5货物名称文本10数量数字长整型单价货币出货价货币总额货币已收获款货币收货单位编码文本5收货单位文本20经办人编码文本5经办人文本8增值税率数字单精度型备注备注将出库有关基本信息登记以便于填写出库单,更新,删除出库记录,查看现有库存信息,出库记录的查询及打印。有关货物出库后要及时更新,从出库及入库中删除有表5-4仓库信息表字段名数据类型字段长度是否为空仓库编号文本5仓库名称文本12存货种类文本2存

4、货价值货币关的记录,对库进行及时更新,这也是计算机库存管理优于过去的很重要的一点。通过仓库信息表可以查看仓库中存货,将出库信息删除的同时相关入库信息也要删除,通过查看库存信息了解还有多少货物剩余,那种缺货,并有相关的提示。供货单位信息表(收货单位表)包括单位编号、单位名称、单位地址、电话联系人的数据类型、字段长度、字段长度。经办人员表包括经办人编号、姓名家庭、住址办公电话的数据类型和字段长度。用户表包括UserIDuserPWD的数据类型字段长度以及是否为空另外,我们还建立了几张查询表,用以存放部分用于计算的统计信息,以便查询。入库登记统计表入库登记_合计货品入库年度统计表入库登记_n供货单位

5、年度供货金额统计表入库登记_w库存汇总表库存出库登记统计表出库登记_合计货品出库年度统计表出库登记_h收货单位年度收货金额统计表出库登记_d入库登记_合计表与出库登记_合计分别是以入库登记表和出库登记表为基础的,所以此处不再描述;库存汇总表主要由出库表和入库表建立关系获得。入库登记_n包括货物名称、入库日期、年度数量的字段长度、数据类型入库登记_w包括供货单位、入库日期、年度供货总额的数据类型、字段长度。表5-5库存汇总字段名数据类型字段长度是否为空货物编码文本5入库日期日期/时间货物名称文本10数量(入库)数字长整型进货价货币数量(出库)数字长整型库存数量数字长整型表5-6出库登记_h字段名

6、数据类型字段长度是否为空货物名称文本10出库日期日期/时间年度数量数字长整型表5-7出库登记_d字段名数据类型字段长度是否为空收货单位文本50出库日期日期/时间年度金额总额数字长整型6设计总结由于以前对VisualBasic6.0的接触并不是很多,对它的开发环境不是非常了解,所以在程序的开发过程中遇到了很多的困难,但经过同学和指导老师的帮助,一一化解了困难,并从中学到了很多编程方面的知识。但是由于经验方面的原因,以及对库存方面的操作流程了解不足,该系统还有许多不尽如人意的地方和功能上的缺陷,这些都有待于进一步改善。参考文献1汉清计算机工作室.VisualBasic6.0数据库开发实例M北京:机

7、械工业出版社. 2000.32 李春葆 张植民. VisualBasic数据库系统设计与开发M北京:清华大学出版社.2003.83Buczek.Access2002数据库开发即时应用M北京:人民邮电出版社. 20024 求是科技.Visual Basic 6.0程序设计与开发技术大全M北京:人民邮电出版社. 2004.95 夏邦贵.Visual Basic6.0数据库开发经典实例精解M北京:机械工业出版社. 2006.16 李春葆,张植民.VisualBasic数据库系统设计与开发M北京:清华大学出版社. 2003.8月7 美布奇科 著,王小娟,陈代川 译.Access2002数据库开发即时应

8、用M北京:人民邮电出版社. 2002.18 季海娟.VisualBasic6.0基础教程M北京:清华大学出版社. 2005.19 恒扬科导.VisualBasic6.0程序设计学与用教程M北京:机械工业出版社. 2003.510 康诺利(Connolly,T.M.) 等著,何玉洁 等译.数据库设计教程第二版M北京:机械工业出版社. 2005.111 (美)埃文,(美)卡拉汉著技桥工作室译.跟我学用VBA开发Access2002应用M北京:科学出版社.2002.612 王宁.Access2002范例入门与应用M北京:人民邮电出版社. 2004.513 梁书斌.精通中文版Access2002数据库

9、开发与应用M北京:清华大学出版社. 2002.514 美Forte,S. ;译者: 张冕洲等译.Access2002开发实用全书/实用全书丛书M北京:电子工业出版社. 2002.415 陈艳华.深入浅出Access2002数据库实例开发M北京:中国青年出版社. 2003.416 罗鸿.ERP原理、设计、实施第三版M北京:电子工业出版社. 2005.4附录本应用程序由33个窗体组成,主要的分别是:主窗体,欢迎界面,登陆窗体,入库窗体,出库窗体,库存汇总,打印及查询等窗体组成。通过运行程序首先进入欢迎界面和登陆窗体,通过输入密码,验证身份后进入主窗体,在主窗体上有10个菜单项,分别对应各自的功能模

10、块窗体,包括系统,库存管理,入库管理,出库管理,盘存管理,综合管理,附项管理,历史数据管理,打印和查询。需要哪个功能的时候就点哪个菜单,相对应的窗体会自动弹出。程序实现的部分代码如下:公共模块Public date1 As StringPublic date2 As StringPublic gUserName As String 保存用户名添加执行SQL语句的函数Public Function transactSQL(ByVal sql As String) As ADODB.RecordsetDim con As ADODB.ConnectionDim rs As ADODB.Record

11、setDim strConnection As StringDim strArray() As StringSet con = New ADODB.Connection 创建连接Set rs = New ADODB.Recordset 创建记录集On Error GoTo TransactSQL_Error strConnection = Provider=Microsoft.jet.oledb.4.0;Data Source=E:库存管理kucun.mdb strArray = Split(sql) con.Open strConnection 打开连接 If StrComp(UCase$(

12、strArray(0), select, vbTextCompare) = 0 Then rs.Open Trim$(sql), con, adOpenKeyset, adLockOptimistic Set transactSQL = rs 返回记录集 iflag = 1 Else con.Execute sql 执行命令 iflag = 1 End IfTransactSQL_Exit: Set rs = Nothing Set con = Nothing Exit FunctionTransactSQL_Error: MsgBox 查询错误: & Err.Description ifla

13、g = 2 Resume TransactSQL_ExitEnd Function主窗体的程序代码图1 主窗体界面图1 主窗体界面Private Sub a1_Click()Form1.ShowEnd SubPrivate Sub a2_Click()Dim fAdd As New frmAddUser fAdd.Show fAdd.ZOrder 0End SubPrivate Sub a3_Click()Dim fChangePWD As New frmChangePWD fChangePWD.ShowEnd SubPrivate Sub a4_Click()frmAbout.ShowEnd

14、 SubPrivate Sub a5_Click() 调入数据备份 Load main_sjbf main_sjbf.Show main.Enabled = FalseEnd SubPrivate Sub a6_Click() 调入数据恢复 Load main_sjhf main_sjhf.Show main.HideEnd SubPrivate Sub b1_Click()frm货品信息.ShowEnd SubPrivate Sub b12_Click() sql = select * from 货品信息 order by 货品编码 frmProInfo.createList (sql) f

15、rmProInfo.ShowEnd SubPrivate Sub b2_Click()frm货品库存.ShowEnd SubPrivate Sub B3_Click()frm超储货品.ShowEnd SubPrivate Sub b4_Click()frm短线货品.ShowEnd SubPrivate Sub c1_Click()frm入库登记.ShowEnd SubPrivate Sub c2_Click()frm货品入库年度统计.ShowEnd SubPrivate Sub c3_Click()frm供货单位供货分类金额统计.ShowEnd SubPrivate Sub c4_Click(

16、)frm供货单位年度供货金额统计.ShowEnd SubPrivate Sub Command1_Click()date1 = Text1.Text & / & Text3.Text & / & Text2.Textdate2 = Text6.Text & / & Text4.Text & / & Text5.TextText7.Text = date1End SubPrivate Sub d1_Click()frm出库登记.ShowEnd SubPrivate Sub d2_Click()frm货品出库年度统计.ShowEnd SubPrivate Sub d3_Click()frm收货单位

17、期间收货统计.ShowEnd SubPrivate Sub d4_Click()frm收货单位年度收货金额统计.ShowEnd SubPrivate Sub e1_Click()frm盘存录入.ShowEnd SubPrivate Sub e2_Click()frm盘存表.ShowEnd SubPrivate Sub f1_Click()frm货品出入汇总表.ShowEnd SubPrivate Sub g1_Click()frm经办人员.ShowEnd SubPrivate Sub g2_Click()frm供货单位.ShowEnd SubPrivate Sub g3_Click()frm仓

18、库信息.ShowEnd SubPrivate Sub g5_Click()Form6.ShowEnd SubPrivate Sub h1_Click()frm历史库存.ShowEnd SubPrivate Sub h2_Click()frm历史入库.ShowEnd SubPrivate Sub h3_Click()frm历史出库.ShowEnd SubPrivate Sub i1_Click()DataReport1.ShowEnd SubPrivate Sub i2_Click()DataReport2.ShowEnd SubPrivate Sub i3_Click()DataReport3

19、.ShowEnd SubPrivate Sub j1_Click()Form2.ShowEnd SubPrivate Sub j2_Click()Form3.ShowEnd SubPrivate Sub j3_Click()Form4.ShowEnd SubPrivate Sub j4_Click()Form5.ShowEnd SubPrivate Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button)Select Case Button.KeyCase Is = rk 调入入库登记c1_ClickCase Is = ck 调入出库

20、登记d1_ClickCase Is = kchz 调入库存汇总f1_ClickCase Is = zhcx 调入组合查询j4_ClickCase Is = sjbf 调入数据备份a5_ClickEnd SelectEnd SubPrivate Sub x_Click()EndEnd Sub登陆模块的实现Private Sub cmdLogin_Click()denlu_name = txtUserName.Textdenlu_pass = txtPassword.TextDim mycn As New ADODB.ConnectionDim myrs As New ADODB.Recordse

21、tSet myrs = New ADODB.Recordsetmycn.OpenProvider=Microsoft.Jet.OLEDB.4.0;Data Source=kucun.mdb;myrs.Open SELECT * FROM 用户 where userID= + denlu_name + ;, mycn, adOpenKeyset, adLockOptimisticIf myrs.BOF = True And myrs.EOF = True ThenMsgBox 查无此人, , 登陆信息Else If myrs(userPWD) = denlu_pass Then MsgBox 身

22、份正确, , 登陆信息 main Unload Me Else MsgBox 密码不正确, , 登陆信息 End If End If End Sub添加用户模块的实现Option ExplicitPrivate Sub Command1_Click() Dim sql As String Dim rs As ADODB.Recordset If Trim(UserName.Text) = Then 判断用户名称是否为空 MsgBox 请输入用户名称!, vbOKOnly + vbExclamation, 警告 Exit Sub UserName.SetFocus Else sql = sele

23、ct * from 用户 where UserID= & U serName & Set rs = transactSQL(sql) If rs.EOF = False Then 判断是否已经存在用户 MsgBox 这个用户已经存在!请重新输入用户名称!, vbOKOnly + vbExclamation, 警告 UserName.SetFocus UserName.Text = PassWord.Text = ConfirmPWD.Text = Exit Sub Else If Trim(PassWord.Text) Trim(ConfirmPWD.Text) Then 判断两次密码是否相同

24、 MsgBox 两次输入的密码不一致,请重新输入密码!, vbOKOnly + vbExclamation, 警告 PassWord.Text = ConfirmPWD.Text = PassWord.SetFocus Exit Sub ElseIf Trim(PassWord.Text) = Then 判断密码是否为空MsgBox 密码不能为空!, vbOKOnly + vbExclamation, 警告 PassWord.Text = ConfirmPWD = PassWord.SetFocus Else 添加用户 sql = insert into 用户 (UserID,UserPWD)

25、 values( & UserName sql = sql & , & PassWord & ) transactSQL (sql) MsgBox 添加成功!, vbOKOnly + vbExclamation, 添加结果 重新设置初始化为空 UserName.Text = PassWord.Text = ConfirmPWD.Text = UserName.SetFocus End If End If End IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()UserName.Text =

26、PassWord.Text = ConfirmPWD.Text = End Sub修改用户密码的实现Option ExplicitPublic gUserName As StringPrivate Sub Command1_Click()Dim sql As String Dim rs As ADODB.Recordset If Trim(OldPWD.Text) = Then判断是否输入旧密码 MsgBox 请输入旧密码!, vbOKOnly + vbExclamation, 警告 OldPWD.SetFocus Exit Sub Else If Trim(NewPWD.Text) = Th

27、en 判断是否输入新密码 MsgBox 请输入新密码!, vbOKOnly + vbExclamation, 警告 NewPWD.SetFocus Exit Sub ElseIf Trim(NewPWD.Text) Trim(ConfirmPWD.Text) Then 判断两次密码是否相同 MsgBox 两次密码不同!, vbOKOnly + vbExclamation, 警告 NewPWD.Text = ConfirmPWD.Text = NewPWD.SetFocus Else 修改密码 sql = update 用户 set UserPWD = & NewPWD & where User

28、ID= sql = sql & gUserName & transactSQL (sql) MsgBox 密码已经修改!, vbOKOnly + vbExclamation, 修改结果 Unload Me End If End IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load() OldPWD.Text = NewPWD.Text = ConfirmPWD.Text = End Sub数据备份模块的实现Private Sub Form_Activate() 赋值给text1 Text1.Text

29、 = AEnd SubPrivate Sub Command1_Click() 确认数据备份 Me.MousePointer = 11 YesNo = MsgBox(准备好了吗?, vbNo + vbQuestion) If YesNo = vbNo Then Exit Sub End If On Error GoTo errprompt Me.MousePointer = 11 MkDir (Text1.Text & :数据备份) FileCopy App.Path & kucun.mdb, Text1.Text & :数据备份kucun & Date & .mdb Me.MousePoin

30、ter = 0 MsgBox 数据已备份完毕。errprompt: Me.MousePointer = 0 Select Case Err.Number Case 57 MsgBox 磁盘已满!, vbCritical Case 70 MsgBox 磁盘写保护!, vbCritical End SelectEnd SubPrivate Sub Command2_Click() Load main main.Show main.Enabled = True Unload MeEnd SubPrivate Sub Form_Unload(Cancel As Integer) main.Enable

31、d = TrueEnd Sub数据恢复模块的实现Private Sub Form_Unload(Cancel As Integer) main.Enabled = TrueEnd SubPrivate Sub Dir1_Change() File1.Path = Dir1.PathEnd SubPrivate Sub Drive1_Change() Dir1.Path = Drive1.DriveEnd SubPrivate Sub File1_Click() Text1.Text = Dir1.Path & & File1.FileNameEnd SubPrivate Sub Command

32、1_Click()恢复指定路径下的数据库 If Text1.Text = Then MsgBox 请选择要恢复的数据! Else Me.MousePointer = 11 FileCopy Dir1.Path & & File1.FileName, App.Path & kucun.mdb Me.MousePointer = 0 MsgBox 数据已恢复完毕! End IfEnd SubPrivate Sub Command2_Click() main.Show Unload MeEnd Sub对于货品信息的浏览,主要采用了MSFlexGrid控件,它是一种Active控件,该控件提供了表格式

33、界面,处理数据相当灵活,具有只读数据绑定、对表格数据进行显示和操作、数据分组排序、Data控件赋值、文本自动换行等功能。但它无法对数据进行动态输入,只能提供浏览功能。图52 货品信息界面图52 货品信息界面具体代码如下:Option ExplicitPrivate Sub Command1_Click()rsGrid.RefreshEnd SubPrivate Sub Form_Load() Dim sql As String sql = select * from 货品信息 order by 货品编码 createList (sql)End SubPublic Sub createList(

34、sql As String) Dim rs As New ADODB.Recordset Dim i As Integer Dim rsGird As MSFlexGrid 设置表头 rsGrid.TextMatrix(0, 0) = 货品编码 rsGrid.TextMatrix(0, 1) = 货品名称 rsGrid.TextMatrix(0, 2) = 类别 rsGrid.TextMatrix(0, 3) = 型号 rsGrid.TextMatrix(0, 4) = 单位 rsGrid.TextMatrix(0, 5) = 仓库编码 rsGrid.TextMatrix(0, 6) = 存放

35、仓库 rsGrid.TextMatrix(0, 7) = 入库计划单价 rsGrid.TextMatrix(0, 8) = 出库计划单价 rsGrid.TextMatrix(0, 9) = 原始库存 rsGrid.TextMatrix(0, 10) = 默认货位 rsGrid.TextMatrix(0, 11) = 警戒底线库存 rsGrid.TextMatrix(0, 12) = 警戒高线库存 For i = 0 To 12 设置所有表格对齐方式 rsGrid.ColAlignment(i) = 4 Next i For i = 0 To 11 设置每列宽度 rsGrid.ColWidth(

36、i) = 1400 Next i rsGrid.ColWidth(12) = 2000 Set rs = transactSQL(sql) If rs.EOF = False Then 显示信息内容 rsGrid.Rows = 1 While Not rs.EOF rsGrid.Rows = rsGrid.Rows + 1 rsGrid.TextMatrix(rsGrid.Rows - 1, 0) = rs(0) rsGrid.TextMatrix(rsGrid.Rows - 1, 1) = rs(1) rsGrid.TextMatrix(rsGrid.Rows - 1, 2) = rs(2)

37、 rsGrid.TextMatrix(rsGrid.Rows - 1, 3) = rs(3) rsGrid.TextMatrix(rsGrid.Rows - 1, 4) = rs(4) rsGrid.TextMatrix(rsGrid.Rows - 1, 5) = rs(5) rsGrid.TextMatrix(rsGrid.Rows - 1, 6) = rs(6) rsGrid.TextMatrix(rsGrid.Rows - 1, 7) = rs(7) rsGrid.TextMatrix(rsGrid.Rows - 1, 8) = rs(8) rsGrid.TextMatrix(rsGri

38、d.Rows - 1, 9) = rs(9) rsGrid.TextMatrix(rsGrid.Rows - 1, 10) = rs(10) rsGrid.TextMatrix(rsGrid.Rows - 1, 11) = rs(11) rsGrid.TextMatrix(rsGrid.Rows - 1, 12) = rs(12) rs.MoveNext Wend rs.Close End IfEnd Sub货品入库登记模块的实现图53 入库登记窗口图53 入库登记窗口Private Sub Form_Unload(Cancel As Integer) Screen.MousePointer

39、= vbDefaultEnd SubPrivate 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 er

40、r: & DescriptionEnd SubPrivate 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.AbsolutePosit

41、ion)End SubPrivate Sub datPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, 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 adRsn

42、Delete Case adRsnFirstChange Case adRsnMove Case adRsnRequery Case adRsnResynch Case adRsnUndoAddNew Case adRsnUndoDelete Case adRsnUndoUpdate Case adRsnUpdate End Select If bCancel Then adStatus = adStatusCancelEnd SubPrivate Sub cmdAdd_Click() On Error GoTo AddErr datPrimaryRS.Recordset.AddNew Exi

43、t SubAddErr: MsgBox Err.DescriptionEnd SubPrivate Sub cmdDelete_Click() On Error GoTo DeleteErr With datPrimaryRS.Recordset .Delete .MoveNext If .EOF Then .MoveLast End With Exit SubDeleteErr: MsgBox Err.DescriptionEnd SubPrivate Sub cmdRefresh_Click() 只有多用户应用程序需要 On Error GoTo RefreshErr datPrimary

44、RS.Refresh Exit SubRefreshErr: MsgBox Err.DescriptionEnd SubPrivate Sub cmdUpdate_Click() On Error GoTo UpdateErr datPrimaryRS.Recordset.UpdateBatch adAffectAll Exit SubUpdateErr: MsgBox Err.DescriptionEnd SubPrivate Sub cmdClose_Click() Unload MeEnd Sub出库登记模块的实现图54 出库登记窗口图54 出库登记窗口Private Sub Form_

45、Unload(Cancel As Integer) Screen.MousePointer = vbDefaultEnd SubPrivate 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) 错误处理程序代码置于此处 想要忽略错误,注释掉下一行 想要捕

46、获它们,在此添加代码以处理它们 MsgBox Data error event hit err: & DescriptionEnd SubPrivate 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 = Recor

47、d: & CStr(datPrimaryRS.Recordset.AbsolutePosition)End SubPrivate Sub datPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) 验证代码置于此处 下列动作发生时该事件被调用 Dim bCancel As Boolean Select Case adReas

48、on 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 = adStatusCancelEnd SubPrivate Sub cmdAdd_Click() On Error

49、 GoTo AddErr datPrimaryRS.Recordset.AddNew Exit SubAddErr: MsgBox Err.DescriptionEnd SubPrivate Sub cmdDelete_Click() On Error GoTo DeleteErr With datPrimaryRS.Recordset .Delete .MoveNext If .EOF Then .MoveLast End With Exit SubDeleteErr: MsgBox Err.DescriptionEnd SubPrivate Sub cmdRefresh_Click() 只

50、有多用户应用程序需要 On Error GoTo RefreshErr datPrimaryRS.Refresh Exit SubRefreshErr: MsgBox Err.DescriptionEnd SubPrivate Sub cmdUpdate_Click() On Error GoTo UpdateErr datPrimaryRS.Recordset.UpdateBatch adAffectAll Exit SubUpdateErr: MsgBox Err.DescriptionEnd SubPrivate Sub cmdClose_Click() Unload MeEnd Sub

51、其他关于添加删除的记录的功能实现都与此类似,在此就不一一列出了。库存查询模块的实现Private Sub Command1_Click()ss = Text1.TextAdodc1.RecordSource = SELECT * FROM 库存 where 货物名称= + ss + Adodc1.RefreshEnd Sub出库查询模块的实现Private Sub Command1_Click()ss = Text1.TextAdodc1.RecordSource = SELECT * FROM 出库登记 where 货品名称= + ss + Adodc1.RefreshEnd SubPriv

52、ate Sub Command2_Click()ss = Text1.TextAdodc1.RecordSource = SELECT * FROM 出库登记 where 出库单号= + ss + Adodc1.RefreshEnd Sub组合查询的实现Private Sub Command1_Click()Adodc1.RecordSource = SELECT * FROM 货品信息 Adodc1.RefreshEnd SubPrivate Sub command3_Click()ss = Text1.TextAdodc1.RecordSource = SELECT * FROM 货品信息

53、 where 货品名称= + ss + Adodc1.RefreshEnd SubPrivate Sub Command4_Click()ss = Text1.TextAdodc1.RecordSource = SELECT * FROM 货品信息 where 型号= + ss + Adodc1.RefreshEnd SubPrivate Sub Command5_Click()ss = Text1.TextAdodc1.RecordSource = SELECT * FROM 货品信息 where 类别= + ss + Adodc1.RefreshEnd SubPrivate Sub Com

54、mand6_Click()ss2 = Text2.Textss3 = Text3.Textss4 = Text4.Textss5 = Text5.TextAdodc1.RecordSource = SELECT * FROM 货品信息 where + ss2 + = + ss4 + and + ss3 + = + ss5 + Adodc1.RefreshEnd Sub附录资料:不需要的可以自行删除C语言中如何获取时间?精度如何?1 使用time_t time( time_t * timer ) 精确到秒2 使用clock_t clock() 得到的是CPU时间精确到1/CLOCKS_PER_S

55、EC秒3 计算时间差使用double difftime( time_t timer1, time_t timer0 )4 使用DWORD GetTickCount() 精确到毫秒5 如果使用MFC的CTime类,可以用CTime:GetCurrentTime() 精确到秒6 要获取高精度时间,可以使用BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency)获取系统的计数器的频率BOOL QueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount)获取计数器的值然后用两次计数器的差

56、除以Frequency就得到时间。7 Multimedia Timer FunctionsThe following functions are used with multimedia timers.timeBeginPeriod/timeEndPeriod/timeGetDevCaps/timeGetSystemTime/*/用标准C实现获取当前系统时间的函数一.time()函数time(&rawtime)函数获取当前时间距1970年1月1日的秒数,以秒计数单位,存于rawtime 中。#include time.hvoid main ()time_t rawtime;struct tm

57、* timeinfo;time ( &rawtime );timeinfo = localtime ( &rawtime );printf ( 007The current date/time is: %s, asctime (timeinfo) );exit(0);=#include - 必须的时间函数头文件time_t - 时间类型(time.h 定义是typedef long time_t; 追根溯源,time_t是long)struct tm - 时间结构,time.h 定义如下:int tm_sec;int tm_min;int tm_hour;int tm_mday;int tm_

58、mon;int tm_year;int tm_wday;int tm_yday;int tm_isdst;time ( &rawtime ); - 获取时间,以秒计,从1970年1月一日起算,存于rawtimelocaltime ( &rawtime ); - 转为当地时间,tm 时间结构asctime ()- 转为标准ASCII时间格式:星期 月 日 时:分:秒 年二.clock()函数,用clock()函数,得到系统启动以后的毫秒级时间,然后除以CLOCKS_PER_SEC,就可以换成“秒”,标准c函数。clock_t clock ( void );#includeclock_t t =

59、clock();long sec = t / CLOCKS_PER_SEC;他是记录时钟周期的,实现看来不会很精确,需要试验验证;三.gettime(&t); 据说tc2.0的time结构含有毫秒信息#include#includeint main(void)struct time t;gettime(&t);printf(The current time is: -:d:d.dn,t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);return 0;time 是一个结构体, 其中成员函数 ti_hund 是毫秒。四.GetTickCount(),这个是wind

60、ows里面常用来计算程序运行时间的函数;DWORD dwStart = GetTickCount();/这里运行你的程序代码DWORD dwEnd = GetTickCount();则(dwEnd-dwStart)就是你的程序运行时间, 以毫秒为单位这个函数只精确到55ms,1个tick就是55ms。五.timeGetTime()t,imeGetTime()基本等于GetTickCount(),但是精度更高DWORD dwStart = timeGetTime();/这里运行你的程序代码DWORD dwEnd = timeGetTime();则(dwEnd-dwStart)就是你的程序运行时间

温馨提示

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

评论

0/150

提交评论