1、VB程序设计 进销存管理信息系统VB进销存管理信息系统(1)添加Module模块,编写Main过程:声明全局对象变量ADOcn,用于创建与数据库的连接Public ADOcn As Connection声明全局变量strQuery1用于存储查询条件Pubic strQuery1 As StringPublic Sub Main()定义数据库连接字符串Dim strSQLServer As String用于连接SQL Server数据库,其中:Server为服务器名称User ID为登录账号,Password为登录口令Database为具体的数据库名请根据具体的实验环境修改这些参数strSQLS
2、erver = Provider=SQLOLEDB;Server=bigdog;Us_er ID=sa;Password=sa;Database=进销存连接SQL Server数据库ADOcn.Open strSQLServer显示主窗体frmMain.ShowEnd Sub将Main过程设为工程启动对象。(2)FrmMain窗体主要代码。该窗体的代码主要用于调度其他各窗体,起串接作用。Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.But_ton)Select Case ButtonCase 物资台账管理frm台账.S
3、how 1Case 物资入库管理frm入库.Show 1Case 物资出库管理frm出库.Show 1Case退出系统Unload Me 或者使用End命令End SelectEnd Sub(3)“frm台账”窗体代码。“通用”部分声明一个Sub过程,用于在MSFlexGrid中显示记录。Private Sub DisplayGrid()声明变量Dim strGrid As StringDim i As IntegerDim ADOrs As New RecordsetADOrs.ActiveConnection = ADOcn打开物资台账If strQuery1 ThenADOrs.Open
4、 Select * From 物资台账Where + strQuery1 + Order By 物资编码ElseADOrs.Open Select * From 物资台账order by 物资编码End If设置MSFlexGrid控件的表头MSFlexGrid1.ClearMSFlexGrid1.Rows = 0MSFlexGrid1.Cols = 6strGrid = 物资编码 + vbTab + 物资名称 + vbTab + 计量单位 + vbTabstrGrid = strGrid + 单价 + vbTab + 期初库存 + vbTab + 期初金额i = 0在第i行增加一列MSFle
5、xGrid1.AddItem strGrid, ii = i + 1通过循环显示表中所有记录Do While Not ADOrs.EOFstrGrid = ADOrs(物资编码) + vbTab + ADOrs(物资名称) + vbTab + ADOrs(计量单位)strGrid = strGrid + vbTab + Str(ADOrs(单价) + vbTab + Str(ADOrs(期初库存)strGrid = strGrid + vbTab + Str(ADOrs(单价) * ADOrs(期初库存)MSFlexGrid1.AddItem strGrid, iADOrs.MoveNext
6、指针下移一条记录i = i + 1LoopMSFlexGrid1.Rows = i + 1MSFlexGrid1.FixedRows = 1MSFlexGrid1.FixedCols = 1End SubPrivate Sub Form_Load()设置查询条件变量的初值strQuery1 = 显示物资台账记录DisplayGridEnd SubPrivate Sub Command1_Click()调用增加记录窗体FrmAdd台账.Show 1DisplayGridEnd SubPrivate Sub Command2_Click()删除一条记录Dim strSQL As StringDim
7、 i As Integer取当前光标所在行i = MSFlexGrid1.Row取当前行的第0列单元值,即物资编码列If MSFlexGrid1.TextMatrix(i, 0) = ThenMsgBox 请先选择一个记录!, vbQuestion + vbOKOnly, 信息提示Exit SubEnd IfstrSQL = Delete From 物资台账strSQL = strSQL + Where 物资编码= + MSFlexGrid1.TextMatr_ix(i, 0) + If MsgBox(是否要删除?, vbQuestion + vbOKCancel, 信息提示) = vbOK
8、ThenADOcn.Execute strSQL 执行删除操作End If重新显示DisplayGridEnd SubPrivate Sub Command3_Click()调用修改记录窗体Dim i As Integeri = MSFlexGrid1.RowIf MSFlexGrid1.TextMatrix(i, 0) = ThenMsgBox 请先选择一个记录!, vbQuestion + vbOKOnly, 信息提示Exit SubEnd If对frmUpdate台账窗体赋值With frmUpdate台账.Text1(0) = MSFlexGrid1.TextMatrix(i, 0).
9、Text1(1) = MSFlexGrid1.TextMatrix(i, 1).Combo1.Text = MSFlexGrid1.TextMatrix(i, 2).Text1(2) = MSFlexGrid1.TextMatrix(i, 3).Text1(3) = MSFlexGrid1.TextMatrix(i, 4).Show 1End With修改完后重新显示DisplayGridEnd SubPrivate Sub Command4_Click()调用设置查询条件窗体FrmQuery查询.Show 1设置完查询条件后重新显示记录DisplayGridEnd SubPrivate Su
10、b Command5_Click()调用打印报表窗体Dim ADOrs As New RecordsetADOrs.ActiveConnection = ADOcnIf strQuery1 ThenADOrs.Open Select * From 物资台账Where + strQuery1+Order By 物资编码ElseADOrs.Open Select * From 物资台账Order By 物资编码End If设置报表窗体的DataSource和DataMember属性Set frmReport台账.DataSource = ADOrs.DataSourceFrmReport台账.Da
11、taMember = ADOrs.DataMemberFrmReport台账.Show 1End SubPrivate Sub Command6_Click()退出本窗体Unload MeEnd Sub(4)“frmAdd台账”窗体代码。Private Sub Command1_Click()Dim strSQL As StringDim ADOrs As New RecordsetSet ADOrs.ActiveConnection = ADOcn首先查询主关键字“物资编码”是否重复ADOrs.Open Select 物资编码From 物资台账Where 物资编码= +Text1(0) +
12、If Not ADOrs.EOF ThenMsgBox 物资编码已存在,请重新输入, vbQuestion + vbOKOnly, 信息提示Exit Sub 退出本过程End If增加一条新记录strSQL = Insert Into 物资台账(物资编码,物资名称,计量单位,单价,期初库存) strSQL = strSQL + Values( + Text1(0) + , + Text1(1)+ , + Combo1.Text + ,strSQL = strSQL + Text1(2) + , + Text1(3) + )ADOcn.Execute strSQLMsgBox 增加成功,请继续!
13、, vbQuestion + vbOKOnly, 信息提示End SubPrivate Sub Command2_Click()退出本窗体Unload MeEnd SubPrivate Sub Form_Load()赋初值Text1(0) = Text1(1) = Text1(2) = 0Text1(3) = 0Combo1.ListIndex = 0End SubPrivate Sub Text1_Change(Index As Integer)当“单价”和“期初库存”值发生变化时,自动计算“期初金额”If Index = 2 Or Index = 3 ThenText1(4) = Trim
14、(Str(Val(Text1(2) * Val(Text1(3)End IfEnd SubPrivate Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)将用户输入的回车键转换为Tab键,使焦点自动下移If KeyAscii = 13 ThenSendKeys TabEnd If对于“单价”和“期初库存”文本框只允许输入数字、小数点和退格键If Index = 2 Or Index = 3 ThenIf Not (Chr(KeyAscii) = 0 And Chr(KeyAscii) = 9)_Or Chr(KeyAscii)
15、= . Or KeyAscii = 8) ThenKeyAscii = 0End IfEnd IfEnd Sub(5)“frmUpdate台账”窗体代码。主要代码是:Private Sub Command1_Click()Dim strSQL As StringstrSQL = Update 物资台账Set 物资名称= + Text1(1) + ,strSQL = strSQL + 计量单位= + Combo1.Text + ,strSQL = strSQL + 单价= + Text1(2) + ,strSQL = strSQL + 期初库存= + Text1(3)strSQL = strSQ
16、L + Where 物资编码= + Text1(0) + ADOcn.Execute strSQLUnload MeEnd Sub(6)“frmQuery台账”窗体代码。Private Sub Command1_Click()拼写查询条件字符串Dim str1, str2 As Stringstr1 = str2 = If Text1(0) Thenstr1 = 物资编码 + Combo1.Text + + Text1(0) + End IfIf Text1(1) Thenstr1 = 物资名称 + Combo2.Text + + Text1(1) + End IfIf str1 = And
17、str2 = ThenstrQuery1 = ElseIf str1 = And str2 ThenstrQuery1 = str2ElseIf str1 And str2 = ThenstrQuery1 = str1ElsestrQuery1 = str1 + And + str2End IfUnload MeEnd SubPrivate Sub Command2_Click()退出本窗体Unload MeEnd SubPrivate Sub Form_Load()对窗体对象赋初值Combo1.ClearCombo1.AddItem =Combo1.AddItem =Combo1.AddItem Combo1.AddItem Combo1.AddItem =Combo1.AddItem Combo2.ClearCombo2.AddItem =Combo2.AddItem =Combo2.AddItem Combo2.AddItem Combo2.AddItem =Combo2.AddItem Text1(0).Text = Text1(1).Text = End Sub
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1