📄 sell.frm
字号:
VERSION 5.00
Begin VB.Form frmSell
BorderStyle = 3 'Fixed Dialog
Caption = "销售信息"
ClientHeight = 5085
ClientLeft = 30
ClientTop = 330
ClientWidth = 4590
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 5085
ScaleWidth = 4590
ShowInTaskbar = 0 'False
StartUpPosition = 2 '屏幕中心
Begin VB.Frame fraMemo
Caption = "备注信息"
Height = 1575
Left = 120
TabIndex = 11
Top = 2760
Width = 4335
Begin VB.TextBox txtItem
Height = 1080
Index = 6
Left = 120
MultiLine = -1 'True
ScrollBars = 2 'Vertical
TabIndex = 12
Top = 360
Width = 3975
End
End
Begin VB.Frame fraInfo
Caption = "销售信息"
Height = 2535
Index = 54
Left = 120
TabIndex = 4
Top = 120
Width = 4335
Begin VB.TextBox txtItem
Height = 270
Index = 5
Left = 1440
MaxLength = 20
TabIndex = 13
Top = 2040
Width = 2535
End
Begin VB.TextBox txtItem
Height = 270
Index = 2
Left = 1440
MaxLength = 20
TabIndex = 10
Top = 802
Width = 2535
End
Begin VB.ComboBox cboItem
Height = 300
Left = 1440
Style = 2 'Dropdown List
TabIndex = 7
Top = 360
Width = 2535
End
Begin VB.TextBox txtItem
Height = 270
Index = 4
Left = 1440
MaxLength = 20
TabIndex = 1
Top = 1626
Width = 2535
End
Begin VB.TextBox txtItem
Height = 270
Index = 3
Left = 1440
MaxLength = 20
TabIndex = 0
Top = 1214
Width = 2535
End
Begin VB.Label lblFields
AutoSize = -1 'True
Caption = "销售日期:"
Height = 180
Index = 4
Left = 240
TabIndex = 14
Top = 2085
Width = 900
End
Begin VB.Label lblFields
AutoSize = -1 'True
Caption = "顾客姓名:"
Height = 180
Index = 1
Left = 240
TabIndex = 9
Top = 840
Width = 900
End
Begin VB.Label lblFields
AutoSize = -1 'True
Caption = "商品名称:"
Height = 180
Index = 0
Left = 240
TabIndex = 8
Top = 420
Width = 900
End
Begin VB.Label lblFields
AutoSize = -1 'True
Caption = "购买数量:"
Height = 180
Index = 2
Left = 240
TabIndex = 6
Top = 1245
Width = 900
End
Begin VB.Label lblFields
AutoSize = -1 'True
Caption = "售出价格:"
Height = 180
Index = 3
Left = 240
TabIndex = 5
Top = 1665
Width = 900
End
End
Begin VB.CommandButton cmdExit
Caption = "返回(&R)"
Height = 375
Left = 2400
TabIndex = 3
Top = 4560
Width = 1335
End
Begin VB.CommandButton cmdSave
Caption = "保存(&S)"
Height = 375
Left = 720
TabIndex = 2
Top = 4560
Width = 1215
End
End
Attribute VB_Name = "frmSell"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'是否改动过记录。若改动过,则将mbChang改为True
Dim mbChange As Boolean
'mbAddMode为True,表示当前的窗体用于添加记录;
'mbAddMode为False,则表示当前的窗体用于编辑记录
Public mbAddMode As Boolean
'顺序号
Public mnSerial As Long
'用来保存进货数量,如果用户改变了进货数量,则需要对相应的库存内容进行修改
Dim mnQuantity As Integer
Private Sub cboItem_Change()
mbChange = True
End Sub
Private Sub cmdExit_Click()
If mbChange Then
If MsgBox("保存当前记录的变化吗?", vbOKCancel + vbExclamation, "警告") = vbOK Then
'保存当前的记录
Call cmdSave_Click
End If
End If
Unload Me
Unload frmSellList
Load frmSellList
frmSellList.SQL = "select * from sell"
frmSellList.Show
End Sub
Private Sub cmdSave_Click()
On Error GoTo errHandler
'验证所输入的字段数据
If txtItem(3).Text = "" Then
MsgBox "字段不能为空,而且只能输入数字", vbCritical, "错误"
End If
If txtItem(4).Text = "" Then
MsgBox "字段不能为空,而且只能输入数字", vbCritical, "错误"
End If
If Trim(cboItem) = "" Then
MsgBox "必须选择商品名称", vbCritical, "错误"
cboItem.SetFocus
Exit Sub
End If
If Not IsDate(Trim(txtItem(5))) Then
MsgBox "请输入正确的日期格式!", vbOKOnly + vbExclamation, "警告"
txtItem(5).SetFocus
Exit Sub
End If
If Not mbAddMode Then
'如果位编辑状态,则先删除已有记录
gConn.Execute "delete from sell where 顺序号 ='" & mnSerial & "'"
End If
Dim rs As New ADODB.Recordset
rs.Open "select * from sell", gConn, adOpenDynamic, adLockOptimistic
'增加记录
rs.AddNew
rs("商品名称") = cboItem.Text
Dim i As Integer
For i = txtItem.LBound To txtItem.UBound
rs.Fields(i).Value = txtItem(i)
Next i
rs.Update
rs.Close
'改变库存中对应商品的数量
mnQuantity = CInt(txtItem(3)) - mnQuantity
gConn.Execute "update products set 库存数量=库存数量-" & mnQuantity & " where 商品名称='" & cboItem.Text & "'"
'如果处于添加模式
If mbAddMode Then
mbChange = False
MsgBox "添加进货信息成功!继续添加下一条进货信息", vbOKOnly + vbExclamation, "添加进货信息"
Unload Me
Me.Show vbModal
Else '如果处于编辑模式
Unload Me
frmSellList.SQL = "select * from sell"
frmSellList.Show
End If
Exit Sub
errHandler:
MsgBox Err.Description, vbCritical, "错误"
End Sub
Private Sub Form_Load()
On Error GoTo errHandler
Dim rs As New ADODB.Recordset
'读取所有的产品信息,并写入到cboItem中
rs.Open "select distinct 商品名称 from products", gConn, adOpenKeyset
If Not rs.EOF Then
cboItem.Clear
Do While Not rs.EOF
cboItem.AddItem rs("商品名称")
rs.MoveNext
Loop
Else
MsgBox "当前数据库不包含任何的商品信息。请先设置商品信息!", vbOKOnly + vbExclamation, "警告"
Exit Sub
End If
rs.Close
If mbAddMode Then '如果窗体处于添加模式
Me.Caption = Me.Caption & "添加"
txtItem(5) = Format(Date, "yyyy-mm-dd")
txtItem(3) = 0
txtItem(4) = 10
mnQuantity = 0
Else '若窗体处于编辑模式
Me.Caption = Me.Caption & "修改"
'取得数据,并写入到对应的控件中
rs.Open "select * from sell where 顺序号=" & mnSerial
If Not rs.EOF Then
cboItem.Text = rs("商品名称")
Dim i As Integer
For i = txtItem.LBound To txtItem.UBound
txtItem(i) = rs.Fields(i).Value
Next i
End If
mnQuantity = rs("购买数量")
rs.Close
End If
mbChange = False
Exit Sub
errHandler:
MsgBox Err.Description, vbCritical, "错误"
End Sub
Private Sub txtItem_Change(Index As Integer)
'有变化设置gblchange
mbChange = True
End Sub
Private Sub txtItem_GotFocus(Index As Integer)
txtItem(Index).SelStart = 0
txtItem(Index).SelLength = Len(txtItem(Index))
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -