仓库管理系统V B A c c e s s源代码Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#仓库管理系统项目的建立这是本人利用闲暇之余在上制作的一个简陋的类库管系统,现图文结合的方式一步一步展现制作过程。
由于本人是个初学者,里面存在很多不足之处望得到高手们的指导。
此文可作供初学者们学习交流。
作者联系方式:E-mail最终运行效果打开软件出现如下登录界面输入系统预设用户名及密码( 1 1 )单击“登录”或单击“新用户”添加新用户进入如下主界面:建立工程1、创建标准EXE2、按“打开”3、添加MDI窗体——打开4、编辑菜单在空白处右击——点击“菜单编辑器”在“标题”里输入“系统”,在“名称”里输入“Sys”(注意此处不能为汉字)点击“下一个”再点击“”“确定”退到MDI界面点击“系统”——“退出”如下,然后编写代码。
代码如下:Private Sub Exit_Click()EndEnd Sub数据库的建立中可以创建Access数据库。
如下建立一个“用户表”的数据库,用来存放用户信息及一些出入库管理信息。
如下图单击“外接程序”再单击“可视化数据管理器”出现如图点击“文件”——“新建”——“Microsoft Access”——“Version MDB”输入数据库名,“保存”出现如下图在数据窗口中右击——“新建表”,最终如下往数据表里添加数据在这里就不罗嗦了,请查阅相关书籍。
登录界面窗口的建立最终界面如下:1、Adodc1的添加过程为:单击“工程”——“部件”出现下图所示,选择“控件”下的“Microsoft ADO Data Control (OLEDB)”单击“确定”在工具栏中会出现“”图标,单击它并拖动到相应位置即可。
其它元件不在一一说明。
2、本窗体代码如下:Private Sub Command1_Click() '“登录”、“确定”按钮 If = "确定" And = "取消" Then '如果为“确定”则添加新用户If = "" Then '提示用户输入用户名MsgBox "请输入用户名!", , "登录信息提示:"Exit SubElse 'Dim usename As String '检测用户名是否已经存在 Dim strS As Stringusename = TrimstrS = "select * from 用户登录信息表 where 用户名='" & usename & "'"= adCmdText= strSIf = False ThenMsgBox "您输入的用户已存在!", , "登录提示信息:"= ""= ""= ""Exit SubEnd IfEnd IfIf = "" Then '提示用户密码不能为空MsgBox "密码不能为空!", , "登录提示信息:"Exit SubEnd IfIf = "" ThenMsgBox "请再次输入密码!", , "登录提示信息:"Exit SubEnd IfIf <> ThenMsgBox "两次输入的密码不一致,请确认!", , "登录提示信息:"= ""= ""Exit SubElse'添加新用户"用户名") = Trim"密码") = TrimMsgBox ("添加新用户成功,现在您可以登陆系统了!")= False= False= "登录"= "退出"End IfElse '“登录”按钮,用户登录 Dim strSno As StringDim strSelect As StringstrSno = Trim '检测用户名是否存在strSelect = "select 密码 from 用户登录信息表 where 用户名 = '" & strSno & "'"= adCmdText= strSelectIf = True ThenMsgBox "用户名不存在,请重新输入!", , "登录提示信息:"= ""= ""Exit SubEnd IfIf "密码") = Trim Then '检测密码是否正确'Unload Me'MsgBox "登陆成功!", , "登录提示信息:"ElseMsgBox "密码不正确,请重新输入!", , "登录提示信息:"= ""End IfEnd IfEnd SubPrivate Sub Command2_Click() '“退出”或“取消”按钮 If = "取消" Then= False= False= "登录"= "退出"= ""= ""ElseEnd 'Unload MeEnd IfEnd SubPrivate Sub Command3_Click() '“新用户”按钮= True= True= ""= ""= ""= "确定"= "取消"End SubPrivate Sub Command3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)= TrueEnd SubPrivate Sub Command3_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)= FalseEnd SubPrivate Sub Form_Load()= False= FalseEnd SubPrivate Sub Timer1_Timer() '时间time1控件的time事件代码,用来'显示向左移动的欢迎字幕 If + > 0 Then '当标签右边位置大于0时,标签向左移- 80Else '否则标签从头开始=End IfIf + > 0 Then- 80Else=End IfEnd Sub主界面窗体如下:代码:Private Sub AddNew_Click()= True= FalseEnd SubPrivate Sub CHKPMCHX_Click()= "出库信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)n = "select * from 出库表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub CHKXHCHX_Click()= "出库信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)n = "select * from 出库表 where 型号 = '" & XH & "'"= adCmdText= nEnd SubPrivate Sub CKCZ_Click()'End SubPrivate Sub CKJSHR_Click()= "出库信息"Dim JSHR As StringDim n As StringJSHR = InputBox("经手人", "请输入", 0)n = "select * from 出库表 where 经手人 = '" & JSHR & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub CKSHJ_Click()= "出库信息"Dim CHKRQ As StringDim n As StringCHKRQ = InputBox("出库日期,格式为:月/日/年如:12/1/2011", "请输入", 0) n = "select * from 出库表 where 出库日期 = '" & CHKRQ & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub CKZCX_Click()= "出库信息"Dim ZB As StringZB = "select * from 出库表 "= adCmdText= ZBCall InitGrid1End SubPrivate Sub Command1_Click()If = "" Then '提示用户输入用户名MsgBox "请输入用户名!", , "登录信息提示:"Exit SubElse 'Dim usename As String '检测用户名是否已经存在 Dim strS As Stringusename = TrimstrS = "select * from 用户登录信息表 where 用户名='" & usename & "'"= adCmdText= strSIf = False ThenMsgBox "您输入的用户已存在!", , "登录提示信息:"= ""= ""= ""Exit SubEnd IfEnd IfIf = "" Then '提示用户密码不能为空MsgBox "密码不能为空!", , "登录提示信息:"Exit SubEnd IfIf = "" ThenMsgBox "请再次输入密码!", , "登录提示信息:"Exit SubEnd IfIf <> ThenMsgBox "两次输入的密码不一致,请确认!", , "登录提示信息:"= ""Exit SubElse'添加新用户"用户名") = Trim"密码") = TrimDim X As IntegerX = MsgBox("成功添加新用户,是否要重新登录!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbYes ThenUnload MeEnd If'MsgBox ("成功添加新用户!")' = False' = False' = "登录"' = "退出"End If= False= True= ""= "'"= ""'End SubPrivate Sub Command2_Click()= False= TrueEnd SubPrivate Sub CXDL_Click()'Unload MeEnd SubPrivate Sub Exit_Click()EndUnload Form1Unload Form2Unload Form3Unload Form4Unload Form5Unload Form6Unload Form7End SubPrivate Sub Form_Load()TextUserName = Trim Unload Form1= FalseCall InitGrid0= - 1060= - 560==End SubPrivate Sub GHCZ_Click()'End SubPrivate Sub GHPMCX_Click()= "归还信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)n = "select * from 归还表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub GHRCX_Click()= "归还信息"Dim JCR As StringDim n As StringJCR = InputBox("归还人", "请输入", 0)n = "select * from 归还表 where 归还人 = '" & JCR & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub GHSJCX_Click()= "归还信息"Dim JCRQ As StringDim n As StringJCRQ = InputBox("归还日期,格式为:月/日/年如:12/1/2011", "请输入", 0) n = "select * from 归还表 where 归还日期 = '" & JCRQ & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub GHXHCX_Click()= "归还信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)n = "select * from 归还表 where 型号 = '" & XH & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub GHZCX_Click()= "归还信息"Dim ZB As StringZB = "select * from 归还表 "= adCmdText= ZBCall InitGrid2End SubPrivate Sub JCCZ_Click()'End SubPrivate Sub JCHPMCHX_Click()= "借出信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)n = "select * from 借出表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCHXHCHX_Click()= "借出信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)n = "select * from 借出表 where 型号 = '" & XH & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCRCX_Click()= "借出信息"Dim JCR As StringDim n As StringJCR = InputBox("借出人", "请输入", 0)n = "select * from 借出表 where 借出人 = '" & JCR & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCSHJCX_Click()= "借出信息"Dim JCRQ As StringDim n As StringJCRQ = InputBox("借出日期,格式为:月/日/年如:12/1/2011", "请输入", 0) n = "select * from 借出表 where 借出日期 = '" & JCRQ & "'"= adCmdText= nCall InitGrid2End SubPrivate Sub JCZCX_Click()= "借出信息"Dim ZB As StringZB = "select * from 借出表 "= adCmdText= ZBCall InitGrid2End SubPrivate Sub JSHRCHX_Click()= "归还信息"Dim JSHR As StringDim n As StringJSHR = InputBox("经手人", "请输入", 0)n = "select * from 归还表 where 经手人 = '" & JSHR & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub JSHRCX_Click()= "借出信息"Dim JSHR As StringDim n As StringJSHR = InputBox("经手人", "请输入", 0)n = "select * from 借出表 where 经手人 = '" & JSHR & "'" = adCmdText= nCall InitGrid2End SubPrivate Sub PMCX_Click()= "库存信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)n = "select * from 库存表 where 品名 = '" & pm & "'"= adCmdText= nCall InitGrid0End SubPrivate Sub RKCZ_Click()'End SubPrivate Sub RKJSHR_Click()= "入库信息"Dim JSHR As StringDim n As StringJSHR = InputBox("经手人", "请输入", 0)n = "select * from 入库表 where 经手人 = '" & JSHR & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub RKPMCHX_Click()= "入库信息"Dim pm As StringDim n As Stringpm = InputBox("产品名", "请输入", 0)If Len(pm) > 0 Thenn = "select * from 入库表 where 品名 = '" & pm & "'"= adCmdText= nEnd IfCall InitGrid1End SubPrivate Sub RKSHJ_Click()= "入库信息"Dim RKRQ As StringDim n As StringRKRQ = InputBox("入库日期,格式为:月/日/年如:12/1/2011", "请输入", 0) n = "select * from 入库表 where 入库日期 = '" & RKRQ & "'"= adCmdText= nCall InitGrid1End SubPrivate Sub RKXHCHX_Click()= "入库信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)If Len(XH) > 0 Thenn = "select * from 入库表 where 型号 = '" & XH & "'"= adCmdText= nEnd IfCall InitGrid1End SubPrivate Sub RKZCX_Click()= "入库信息"Dim ZB As StringZB = "select * from 入库表 "= adCmdText= ZBCall InitGrid1End SubPrivate Sub Timer1_Timer()If + > 0 Then '当标签右边位置大于0时,标签向左移- 80Else '否则标签从头开始 =End IfIf + > 0 Then- 80Else=End IfIf + > 0 Then- 80Else=End IfIf + > 0 Then- 80Else=End IfEnd SubPrivate Sub XGMM_Click()'End SubPrivate Sub XHCX_Click()= "库存信息"Dim XH As StringDim n As StringXH = InputBox("产品型号", "请输入", 0)If Len(XH) > 0 Then 'And Val(XH) <> 0n = "select * from 库存表 where 型号 = '" & XH & "'"= adCmdText= nEnd IfCall InitGrid0End SubPrivate Sub ZB_Click()= "库存信息"Dim ZB As String'Dim N As String'PM = InputBox("产品名", "请输入", 0)ZB = "select * from 库存表 " 'where 品名 = '" & PM & "'" = adCmdText= ZBCall InitGrid0End SubPrivate Sub InitGrid0()With DataGrid1.Columns(0).Width = 1600.Columns(1).Width = 2200.Columns(2).Width = 2200.Columns(3).Width = 1000.Columns(4).Width = 1000.Columns(5).Width = 4000End WithEnd SubPrivate Sub InitGrid1()With DataGrid1.Columns(0).Width = 800.Columns(1).Width = 1600.Columns(2).Width = 1600.Columns(3).Width = 800.Columns(4).Width = 800.Columns(5).Width = 1000.Columns(6).Width = 800.Columns(7).Width = 4000End WithEnd SubPrivate Sub InitGrid2()With DataGrid1'.Columns(0).Caption = "学号"' .Columns(1).Caption = "课程名"'.Columns(2).Caption = "学分"' .Columns(3).Caption = "成绩"'设置DtgCond的列宽.Columns(0).Width = 800.Columns(1).Width = 1600.Columns(2).Width = 1600.Columns(3).Width = 800.Columns(4).Width = 800.Columns(5).Width = 800.Columns(6).Width = 1000.Columns(7).Width = 800.Columns(8).Width = 4000End WithEnd Sub用户重新登录界面代码:Private Sub Command1_Click()Dim strSno As StringDim strSelect As StringstrSno = Trim '检测用户名是否存在 strSelect = "select 密码 from 用户登录信息表 where 用户名 = '" & strSno & "'" = adCmdText= strSelectIf = True ThenMsgBox "用户名不存在,请重新输入!", , "登录提示信息:"= ""= ""Exit SubEnd IfIf "密码") = Trim Then '检测密码是否正确Unload Me'MsgBox "登陆成功!", , "登录提示信息:"ElseMsgBox "密码不正确,请重新输入!", , "登录提示信息:"= ""End IfEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub修改用户密码界面代码:Private Sub Command1_Click()If Trim <> ThenMsgBox "用户名不正确,请确认!", , "信息提示!"= ""Exit SubElseDim name As StringDim names As Stringname = Trimnames = "select * from 用户登录信息表 where 用户名='" & name & "'" = adCmdText= namesIf = "" ThenMsgBox "请输入旧密码!", , "信息提示!"Exit SubEnd IfIf "密码") <> Trim ThenMsgBox "旧密码不正确,请确认!", , "信息提示!" = ""Exit SubEnd IfIf = "" ThenMsgBox "请输入新密码!", , "信息提示!"Exit SubEnd IfIf = "" ThenMsgBox "请再次输入新密码!", , "信息提示!"Exit SubEnd IfIf Trim <> Trim ThenMsgBox "两次输入的新密码不一致!", , "信息提示!" = ""= ""Exit SubElse"密码") = TrimMsgBox ("密码修改成功!")Unload Me'End IfEnd IfEnd SubPrivate Sub Command2_Click()Unload Me'End Sub入库管理代码:Private Sub Command1_Click()If = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项!", , "提示信息!" Exit SubElseIf = "" And = "" ThenMsgBox "请输入产品“数量”或“单位”之一!", , "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名!", vbCritical, "提示信息!"Exit SubEnd If'添加"品名") = Trim"型号") = Trim"数量") = Trim"单位") = Trim"经手人") = Trim"入库日期") = Date"说明") = TrimEnd IfDim pm As StringDim pms As StringDim m As Stringpm = Trimn = Valpms = "select * from 库存表 where 品名='" & pm & "'"= adCmdText= pmsIf ThenWith Form2. ."品名") = Trim."型号") = Trim."数量") = Trim."单位") = Trim."说明") = Trim. End WithElsem = "数量").ValueIf "型号") = Trim Then"数量") = Val(m) + Val(n)End IfEnd IfDim X As IntegerX = MsgBox("产品入库登记成功,是否继续添加产品!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbNo ThenUnload Me'Else= ""= ""= ""= ""= ""= ""= ""End If= "入库信息"Dim ZB As StringZB = "select * from 入库表 " 'where 品名 = '" & PM & "'"= adCmdText= ZBSubPrivate Sub Command2_Click()= ""= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_Click()Unload Me'End Sub出库管理代码:Private Sub Command1_Click()If = "" And = "" Then ' = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项!", , "提示信息!" Exit SubElseIf = "" And = "" Then ' = "" ThenMsgBox "请输入产品“数量”或“单位”之一!", , "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名!", vbCritical, "提示信息!"Exit SubEnd If'添加"品名") = Trim 'Trim"型号") = Trim 'Trim"数量") = Trim"单位") = Trim 'Trim"经手人") = Trim"出库日期") = Date"说明") = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select * from 库存表 where 品名='" & pm & "'"= adCmdText= pmsm = "数量").ValueIf "型号") = Trim Then"数量") = Val(m) - Val(n)End IfDim X As IntegerX = MsgBox("产品出库登记成功,是否继续添加产品!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbNo ThenUnload Me'End If= ""= ""= ""= ""= ""= ""= ""= "出库信息"Dim ZB As StringZB = "select * from 出库表 " 'where 品名 = '" & PM & "'"= adCmdText= ZBSubPrivate Sub Command2_Click()= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_Click()Unload Me'End SubPrivate Sub Form_Load()Do Until "型号")"品名")"单位")LoopEnd Sub借出管理代码:Private Sub Command1_Click()If = "" And = "" Then ' = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项!", , "提示信息!" Exit SubElseIf = "" And = "" Then ' = "" ThenMsgBox "请输入产品“数量”或“单位”之一!", , "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名!", vbCritical, "提示信息!"Exit SubEnd If'添加"品名") = Trim 'Trim"型号") = Trim 'Trim"数量") = Trim"单位") = Trim 'Trim"经手人") = Trim"借出人") = Trim"借出日期") = Date"说明") = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select * from 库存表 where 品名='" & pm & "'"= adCmdText= pmsm = "数量").ValueIf "型号") = Trim Then"数量") = Val(m) - Val(n)End IfDim X As IntegerX = MsgBox("产品借出登记成功,是否继续添加产品!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbNo ThenUnload MeEnd If= ""= ""= ""= ""= ""= ""= ""= "借出信息"Dim ZB As StringZB = "select * from 借出表 " 'where 品名 = '" & PM & "'"= adCmdText= ZBSubPrivate Sub Command2_Click()= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_Click()Unload MeEnd SubPrivate Sub Form_Load()Do Until "品名")"型号")"单位")LoopEnd Sub归还管理代码:Private Sub Command1_Click()If = "" And = "" Then ' = "" And = "" ThenMsgBox "“品名”和“型号”不能同时为空,必须输入其中一项!", , "提示信息!" Exit SubElseIf = "" And = "" Then ' = "" ThenMsgBox "请输入产品“数量”或“单位”之一!", , "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请经手人签名!", vbCritical, "提示信息!"Exit SubEnd IfIf = "" ThenMsgBox "请输入归还人姓名!", vbCritical, "提示信息!"Exit SubEnd If'添加"品名") = Trim 'Trim"型号") = Trim 'Trim"数量") = Trim"单位") = Trim 'Trim"经手人") = Trim"归还人") = Trim"归还日期") = Date"说明") = TrimEnd IfDim pm As StringDim pms As StringDim n As StringDim m As Stringpm = Trimn = Valpms = "select * from 库存表 where 品名='" & pm & "'"= adCmdText= pmsm = "数量").ValueIf "型号") = Trim Then"数量") = Val(m) + Val(n)End IfDim X As IntegerX = MsgBox("产品归还登记成功,是否继续添加产品!", vbYesNo + vbQuestion + vbDefaultButton1, "提示信息!") If X = vbNo ThenUnload MeEnd If= ""= ""= ""= ""= ""= ""= ""= "归还信息"Dim ZB As StringZB = "select * from 归还表 " 'where 品名 = '" & PM & "'" = adCmdText= ZBSubPrivate Sub Command2_Click()= ""= ""= ""= ""= ""= ""= ""End SubPrivate Sub Command3_Click()Unload MeEnd SubPrivate Sub Form_Load()' Dim i As String' i = 0'' ' Do Until ' "品名")' "型号")' "单位")' ' i = i + 1' LoopCall pmEnd SubPrivate Sub pm()Dim i As VariantDim j As VariantDim k As VariantDim a As VariantDim b As VariantDim c As VariantDim s As VariantDim D As Varianti = 0j = 0Do Until a = a + "," + "品名")b = b + "," + "型号")b = b + "," + "单位")i = i + 1LoopD = Split(a, ",")If j < i Thens = D(2)s'k = 0'If k < j And D(k) <> D(j) Then'If D(k) <> D(j) Then' D(j)' k = k + 1' Else' k = k + 1'End If'End Ifj = j + 1End If= s 'a + "," + D(2) + D(1) '+ " " + Val(i) + " " + Val(j) + " " + Val(k) = j' D(1)End Sub。