ImageVerifierCode 换一换
格式:DOCX , 页数:55 ,大小:661.67KB ,
资源ID:23289208      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23289208.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(vb药品管理系统课程设计报告.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

vb药品管理系统课程设计报告.docx

1、vb药品管理系统课程设计报告1.系统开发背景随着科技的不断进步,企业都在不断的注重管理的信息化以完善企业管理,增强企业自身的竞争力。药品销售业也不例外,通过较完善的信息系统实现自身企业对内部管理的方便性、合理性、快捷性、高效性等要求。以前的手工管理效率低使最明显的缺陷,另外,数据的一致性不好维护,如某个药品信息的记录有所改动(如更改编号),那么该要品的其他记录就与此不一致,造成查询的费时费力。要把全部数据都更改又相当不方便。对药品库存的盘点也很不方便,而且需要较多的人来进行管理操作,而且容易出错,造成数据的不一致。而药品业是关民生的行业,错误信息可能会造成不可收拾的严重后果。因此,运用高效、准

2、确的信息管理系统来替代手工管理是完善药品销售业管理的有效手段。2.系统开发意义利用数据库系统可以很好的对数据进行维护,减少由于数据不一致等错误带来的麻烦。方便数据的更新和查询,降低错误率,方便药品信息的维护及库存的盘点。还可以运用较少的人员,高效的完成对药品销售的管理。由于社会的发展不断趋于信息化,各个行业都要加强自身的信息化程度以适应社会的发展。而管理信息化正迎合了这个趋势,数据库系统在药品销售业的应用业实现了药品销售业执行工具、业务管理等的信息化,在这个信息化社会为药品销售业的发展增加了新的动力。相信随着社会的不断发展对该类系统的需求会越来越高。药品销售管理信息系统,即服务于个人,又服务于

3、企业,并最终服务于社会,这是让科技为人类服务的最好例证,其开发意义显而易见。.各实例的E-R图整体实体E-R图:出入库信息实体E-R图:货物信息实体E-R图:用户信息实体E-R图:人员配置E-R图:3.结构设计入库出库模块: 用来实现货物流通的查询。货物详况模块: 用来实现货物浏览的查询。货物汇总模块:用来实现货物质料的增加、删除、修改等操作。系统管理模块:用来实现客户的增加、删除以及用户信息和密码的修改等操作。4.数据库设计这里的数据库采用access,用ADO作为连接数据对象。启动access建立一个数据库如图所示货源地表格: 客户名表格: 货物详况表:入库表:系统管理表:数据连接。在vb

4、环境下连接数据:在程序设计的公共模块中,先定义ADO连接对象。语句如下:Public conn new ADODB connection然后在子程序中,用如下的语句即可打开数据库Dim connectionstring as stringConnectionstring=“provider=microsoft.jet.oledb.4.0;&-data source=cangku.mdb”Conn.open connectionstring4.界面设计设计好的界面如图所示:菜单程序中,有5个菜单选项你,每个菜单选项对应着E-R图的一个子项目。1.创建主窗体。首先创建一个工程,命名为药品管理系统,

5、选择 工程-添加MDI窗体 命令,则在项目中添加了子窗体该窗体属性如下表所示:创建各菜单项的属性如下表所示:2.创建各子窗体。选择 工程-添加窗体 命令,添加子窗体,其属性如下:入库子窗体如下图所示:各控件属性如下表:增加用户子窗体如下图所示:其各控件属性如下表所示:修改密码窗体如下图所示:库房管理子窗体如下图所示:库房管理子窗体控件如下表所示:查询子窗体及其控件如下所示:货物汇总子窗体及其属性如下:关于窗体主要是列出关于系统的版本信息如下图5.建立公共模块在菜单中选择 工程-添加模块 命令,则出现添加模块对话框,选中模块后单击打开,则模块添加到目录中,在模块中定义整个项目的公共变量。Opti

6、on ExplicitPublic conn As New ADODB.Connection Public userID As String Public userpow As String Public find As Boolean Public sqlfind As String Public rs_data1 As New ADODB.RecordsetPublic findok As BooleanPublic summary_menu As String Public frmdata As BooleanPublic Const keyenter = 13 6.代码设计子窗体中都是

7、click事件1.主窗体代码如下:Private Sub about_Click()frmabout.ShowEnd SubPrivate Sub add_user_Click()adduser.ShowEnd SubPrivate Sub check_find_Click()chaxun.ShowEnd SubPrivate Sub data_manage_Click()sqlfind = select * from 入出库rs_data1.Open sqlfind, conn, adOpenKeyset, adLockPessimistickumanage.ShowEnd SubPriva

8、te Sub exit_Click()Unload MeEnd SubPrivate Sub in_check_Click()jinku.Caption = 入库jinku.ShowEnd Sub在MIDFORM1中主要代码如下:Private Sub MDIForm_Load()frmdata = Falsefind = FalseEnd SubPrivate Sub modify_pw_Click()changpwd.ShowEnd SubPrivate Sub out_check_Click()jinku.Caption = 出库jinku.ShowEnd SubPrivate Sub

9、sum_check_date_Click()summary_menu = check_datehuizong.Show 1End SubPrivate Sub sum_date_custom_Click()summary_menu = date_customhuizong.Show 1End SubPrivate Sub summary_check_Click()summary_menu = checkhuizong.Show 1End SubPrivate Sub summary_custom_Click()summary_menu = customhuizong.Show 1End Sub

10、Private Sub summary_date_Click()summary_menu = datehuizong.Show 1End SubPrivate Sub Timer1_Timer()End Sub2.各子窗体代码:入库子窗体代码。本窗体用来查询货物入库的信息,下面的代码是定义几个变量:Option ExplicitDim rs_checkname As New ADODB.Recordset Dim rs_custom As New ADODB.Recordset Const row_num = 10 Const col_num = 6 确定按钮代码;Private Sub Co

11、mmand1_Click()Dim rs_save As New ADODB.RecordsetDim sql As StringDim i As IntegerDim s As String On Error GoTo saveerrorIf Trim(Text1.Text) = Then MsgBox 货单不能为空!, vbOKOnly + vbExclamation, Text1.SetFocus Exit SubEnd IfIf Combo1.Text = Then MsgBox 请选择货源地!, vbOKOnly + vbExclamation, Combo1.SetFocus Ex

12、it SubEnd IfIf comboy.Text = Then MsgBox 请选择年份!, vbOKOnly + vbExclamation, comboy.SetFocus Exit SubEnd IfIf combom.Text = Then MsgBox 请选择月份!, vbOKOnly + vbExclamation, combom.SetFocus Exit SubEnd IfIf combod.Text = Then MsgBox 请选择日期!, vbOKOnly + vbExclamation, combod.SetFocus Exit SubEnd IfIf Text2.

13、Text = Then MsgBox 请填写凭证号!, vbOKOnly + vbExclamation, Text2.SetFocus Exit SubEnd IfIf Text3.Text = Then MsgBox 请填写经手人!, vbOKOnly + vbExclamation, Text3.SetFocus Exit SubEnd IfIf MSFlexGrid1.Col 0 Then MsgBox 请输入完整的物品信息!, vbOKOnly + vbExclamation, MSFlexGrid1.SetFocus Exit SubEnd If 数据库比较代码:sql = sel

14、ect * from 入出库 where 货单号= & Text1.Text & rs_save.Open sql, conn, adOpenKeyset, adLockPessimisticIf rs_save.EOF Then rs_save.AddNew rs_save.Fields(0) = Trim(Text1.Text) rs_save.Fields(1) = CDate(Trim(comboy.Text) & - & Trim(combom.Text) & - & Trim(combod.Text) rs_save.Fields(2) = Trim(Combo1.Text) rs

15、_save.Fields(3) = Trim(Text2.Text) rs_save.Fields(4) = Trim(Text3.Text) rs_save.Fields(5) = Trim(Text4.Text) If jinku.Caption = 入库 Then rs_save.Fields(6) = True Else rs_save.Fields(6) = False End If rs_save.Update rs_save.CloseElse MsgBox 货单号重复!, vbOKOnly + vbExclamation, Text1.SetFocus Text1.Text =

16、 rs_save.Close Exit SubEnd Ifsql = select * from 货物详况rs_save.Open sql, conn, adOpenKeyset, adLockPessimisticFor i = 1 To MSFlexGrid1.Row - 1 rs_save.AddNew rs_save.Fields(0) = Trim(Text1.Text) rs_save.Fields(1) = CDate(Trim(comboy.Text) & - & Trim(combom.Text) & - & Trim(combod.Text) rs_save.Fields(

17、2) = Trim(Combo1.Text) MSFlexGrid1.Row = i MSFlexGrid1.Col = 0 rs_save.Fields(3) = Trim(MSFlexGrid1.Text) MSFlexGrid1.Col = 1 If jinku.Caption = 出库 Then s = - & Trim(MSFlexGrid1.Text) rs_save.Fields(4) = CDbl(s) Else rs_save.Fields(4) = CDbl(Trim(MSFlexGrid1.Text) End If MSFlexGrid1.Col = 2 rs_save.

18、Fields(5) = Trim(MSFlexGrid1.Text) MSFlexGrid1.Col = 3 rs_save.Fields(6) = Trim(MSFlexGrid1.Text) MSFlexGrid1.Col = 4 If jinku.Caption = 出库 Then s = - & Trim(MSFlexGrid1.Text) rs_save.Fields(7) = CDbl(s) Else rs_save.Fields(7) = CDbl(Trim(MSFlexGrid1.Text) End If MSFlexGrid1.Col = 5 rs_save.Fields(8

19、) = Trim(MSFlexGrid1.Text)Next irs_save.Updaters_save.CloseMsgBox 添加成功!, vbOKOnly + vbExclamation, Unload MeExit Subsaveerror: MsgBox Err.DescriptionEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim sql As StringDim i As IntegerOn Error GoTo loaderrorsql = select * from 货

20、源地rs_checkname.CursorLocation = adUseClientrs_checkname.Open sql, conn, adOpenKeyset, adLockPessimisticsql = select * from 客户名rs_custom.CursorLocation = adUseClientrs_custom.Open sql, conn, adOpenKeyset, adLockPessimisticWhile Not rs_custom.EOF Combo2.AddItem rs_custom.Fields(0) rs_custom.MoveNextWe

21、ndIf Not rs_checkname.EOF Then rs_checkname.MoveFirst While Not rs_checkname.EOF Combo1.AddItem rs_checkname.Fields(0) rs_checkname.MoveNext WendEnd Ifcomboy.AddItem 2002 comboy.AddItem 2003comboy.AddItem 2004comboy.AddItem 2005comboy.AddItem 2006comboy.AddItem 2007comboy.AddItem 2008comboy.AddItem

22、2009comboy.AddItem 2010comboy.AddItem 2011For i = 1 To 12 combom.AddItem iNext iFor i = 1 To 31 combod.AddItem iNext isetgridsetgrid_headText5.Visible = Falseclear_gridExit Subloaderror: MsgBox Err.DescriptionEnd SubPrivate Sub Form_Unload(Cancel As Integer)关闭数据对象rs_checkname.Closers_custom.CloseEnd

23、 SubPublic Sub setgrid() Dim i As IntegerOn Error GoTo seterrorMSFlexGrid1.ScrollBars = flexScrollBarBothMSFlexGrid1.FixedCols = 0MSFlexGrid1.Rows = row_numMSFlexGrid1.Cols = col_numMSFlexGrid1.SelectionMode = flexSelectionByRowFor i = 0 To row_num - 1 MSFlexGrid1.RowHeight(i) = 315NextFor i = 0 To

24、col_num - 1 MSFlexGrid1.ColWidth(i) = 1300Next iExit Subseterror: MsgBox Err.DescriptionEnd SubPublic Sub setgrid_head()On Error GoTo setheaderrorMSFlexGrid1.Row = 0MSFlexGrid1.Col = 0MSFlexGrid1.Text = 物品名称MSFlexGrid1.Col = 1MSFlexGrid1.Text = 单价MSFlexGrid1.Col = 2MSFlexGrid1.Text = 数量MSFlexGrid1.C

25、ol = 3MSFlexGrid1.Text = 单位MSFlexGrid1.Col = 4MSFlexGrid1.Text = 金额MSFlexGrid1.Col = 5MSFlexGrid1.Text = 客户名Exit Subsetheaderror: MsgBox Err.DescriptionEnd SubPublic Sub clear_grid()Dim i As Integer, j As IntegerFor i = 1 To row_num - 1 MSFlexGrid1.Row = i For j = 0 To col_num - 1 MSFlexGrid1.Col =

26、j MSFlexGrid1.Text = Next jNext iEnd SubPublic Sub nextposition(ByVal r As Integer, ByVal c As Integer)On Error GoTo nexterrorText5.Width = MSFlexGrid1.CellWidthText5.Height = MSFlexGrid1.CellHeightText5.Left = MSFlexGrid1.Left + MSFlexGrid1.ColPos(c)Text5.Top = MSFlexGrid1.Top + MSFlexGrid1.RowPos(

27、r)Text5.Text = MSFlexGrid1.TextText5.Visible = TrueText5.SetFocusExit Subnexterror: MsgBox Err.DescriptionEnd SubPrivate Sub MSFlexGrid1_Click()If Combo2.Visible = True Then Exit SubEnd Ifnextposition MSFlexGrid1.Row, MSFlexGrid1.ColEnd SubPrivate Sub Text5_KeyPress(KeyAscii As Integer)Dim i As Inte

28、ger, j As IntegerDim price As Double, coun As IntegerOn Error GoTo texterrorIf KeyAscii = keyenter Then MSFlexGrid1.Text = Text5.Text i = MSFlexGrid1.Row j = MSFlexGrid1.Col If j = 0 And Trim(Text5.Text) = Then MsgBox 物品名称不能为空, vbOKOnly + vbExclamation, Text5.SetFocus Exit Sub End If If j = 1 And No

29、t IsNumeric(Text5.Text) Then MsgBox 单价请输入数字!, vbOKOnly + vbExclamation, Text5.SetFocus Exit Sub End If If j = 2 And Not IsNumeric(Text5.Text) Then MsgBox 数量请输入数字!, vbOKOnly + vbExclamation, Text5.SetFocus Exit Sub End If If j = 3 And Trim(Text5.Text) = Then MsgBox 单位不能为空!, vbOKOnly + vbExclamation, Text5.SetFocus Exit Sub End If If j = 3 And Not IsNull(Text5.Text) Then MSFlexGrid1.Col = 1 price = CDbl(MSFlexGrid1.Text) MSFlexGrid1.Col = 2 coun = CInt(MSFlexGrid1.Text) MSFlexGrid1.Col = 4 MSFlexGrid1.Text = price * coun MSFlexGrid1.Col = MSFlexGrid1.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1