?? frm_kcpd.frm
字號:
Dim i As Integer '運用在FOR循環中的變量
Dim StrTemp '用于顯示編號信息的變量
Dim StrNum As Long '用于顯示編號信息的變量
Dim ETemp As Integer '定義一個日志標識變量
'*** 添加庫存盤點信息的事件過程 ***
Private Sub Cmd_Add_Click()
For i = 0 To 5
Text1(i).Text = ""
Next i
Adodc1.RecordSource = "select * from tb_kcpd order by pd_ID"
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
Adodc1.Recordset.MoveLast '將數據庫中的記錄移向下一條
StrNum = Val(Adodc1.Recordset.Fields("PD_ID")) + 1 '使庫存盤點編號加1
Select Case Len(Trim(StrNum)) '位數不足者補0
Case 1
StrTemp = "00000"
Case 2
StrTemp = "0000"
Case 3
StrTemp = "000"
Case 4
StrTemp = "00"
Case 5
StrTemp = "0"
Case 6
StrTemp = ""
End Select
Text1(0).Text = "Q" & Trim(StrTemp) & Trim(Str(StrNum))
Else
Text1(0).Text = "L000001" '給庫存盤點編號賦一個初值
StrNum = 1
End If
Text1(1).SetFocus
Cmd_Save.Enabled = True
Cmd_Del.Enabled = False
Cmd_Edit.Enabled = False
End Sub
'*** 刪除庫存盤點信息的事件過程 ***
Private Sub Cmd_del_Click()
rtn = SetWindowPos(Me.hwnd, -2, 0, 0, 0, 0, 3) '運用API函數SetWindowPos,來實現取消窗體置前的功能
If Adodc1.Recordset.EOF = False Then
c = MsgBox("您確認要刪除該記錄嗎?", 17, "刪除提示信息")
If c = vbOK Then
Adodc1.Recordset.Delete '刪除庫存盤點信息
Adodc1.Refresh
ETemp = 1 '設置刪除標識
Call joinRZ '調用添加日志過程
For i = 0 To 5 '清空文本框中的信息
Text1(i).Text = ""
Next i
Cmd_Del.Enabled = False
End If
Else
MsgBox "當前數據庫中已經沒有可刪除的記錄", 64, "提示信息"
End If
Call TRefresh '調用數據庫刷新過程
End Sub
'*** 修改庫存盤點信息的事件過程 ***
Private Sub Cmd_edit_Click()
rtn = SetWindowPos(Me.hwnd, -2, 0, 0, 0, 0, 3) '運用API函數SetWindowPos,來實現取消窗體置前的功能
If Text1(0).Text = "" Or Text1(1).Text = "" Then
MsgBox "請選擇需要改動的記錄信息!", 48, "信息提示"
Else
c = MsgBox("確認要修改該記錄嗎?", 33, "修改信息提示")
If c = vbOK Then
'限制某些輸入項不為空值
If Text1(1).Text = "" Or Text1(3).Text = "" Or Text1(4).Text = "" Then
MsgBox "貨品數量、單價或名稱不能為空值!", 48, "修改信息提示"
Else
'IsNumeric函數用于判斷輸入的信息是否為數值型數據,關于該函數的具體用法請參閱明日公司《Visual Basic 編程詞典》中的函數應用部分 網址 www.cccxy.com
If Not IsNumeric(Text1(3).Text) Or Not IsNumeric(Text1(4).Text) Then
MsgBox "輸入的貨品數量或單價必須為數值型數據", 48, "修改信息提示"
Else
Call main '調用公共模塊中的連接數據庫函數
'修改庫存盤點信息
Set adoRs = adoCon.Execute("UPDATE tb_kcpd SET pd_Name='" + Text1(1).Text + "',pd_SPEC='" + Text1(2).Text + "',pd_UNIT='" + Combo1.Text + "',pd_Num=" + Text1(3).Text + ",pd_dj=" + Text1(4).Text + ",pd_Date='" + Str(DTPicker1.Value) + "',pd_Remark='" + Text1(5).Text + "',PD_Mpeople='" + Text2.Text + "',PD_HPYC='" + Combo2.Text + "',PD_Mpeoples='" + Name1 + "',PD_mdate='" + Str(Now) + "' where pd_ID=" + Str(StrNum) + "")
ETemp = 0 '設置修改標識
Call joinRZ '調用添加日志過程
MsgBox "信息修改成功", 64, "修改信息提示"
Cmd_Edit.Enabled = False
adoCon.Close '關閉數據連接
End If
End If
Else
End If
End If
Call TRefresh '調用數據刷新過程
End Sub
Private Sub Cmd_exit_Click()
Unload Me
End Sub
'*** 保存庫存盤點信息的事件過程 ***
Private Sub Cmd_save_Click()
rtn = SetWindowPos(Me.hwnd, -2, 0, 0, 0, 0, 3) '運用API函數SetWindowPos,來實現取消窗體置前的功能
Adodc1.RecordSource = "select * from tb_kcpd where pd_ID=" + Str(StrNum) + "" '判斷所要保存的數據信息在數據庫中是否存在
Adodc1.Refresh
If Adodc1.Recordset.RecordCount > 0 Then
MsgBox "該信息已經存在,信息保存不成功", 64, "保存信息提示"
Call TRefresh '調用數據刷新過程
Else
c = MsgBox("您確認要保存該信息嗎?", 33, "保存信息提示")
If c = vbOK Then
If Text1(1).Text = "" Or Text1(3).Text = "" Or Text1(4).Text = "" Or Text2.Text = "" Then
MsgBox "貨品數量、單價、名稱或者盤點員信息不能為空值!", 48, "保存信息提示"
Else
If Not IsNumeric(Text1(3).Text) Or Not IsNumeric(Text1(4).Text) Then
MsgBox "輸入的貨品數量或單價必須為數值型數據", 48, "保存信息提示"
Else
Call main '調用公共模塊中的連接數據庫函數
NumId = Val(Mid(Text1(0).Text, 2, Len(Text1(0).Text)))
'保存庫存盤點信息
Set adoRs = adoCon.Execute("insert into tb_KCPD (pd_ID,pd_Name,pd_SPEC,pd_UNIT,pd_Num,pd_dj,pd_Date,PD_Mpeople,PD_HPYC,PD_Nums,PD_remark) values(" & StrNum & ",'" & Text1(1).Text & "','" & Text1(2).Text & "','" & Combo1.Text & "','" & Text1(3).Text & "','" & Text1(4).Text & "','" & Str(DTPicker1.Value) & "','" & Text2.Text & "','" & Combo2.Text & "'," & Text3.Text & ",'" & Text1(5).Text & "')")
MsgBox "信息保存成功", 64, "保存信息提示"
Cmd_Save.Enabled = False
Call TRefresh '調用數據刷新過程
adoCon.Close '關閉數據連接
End If
End If
Else
End If
End If
Call TRefresh '調用數據刷新過程
End Sub
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then '如果按下的是回車鍵,則光標落到文本框當中
Text1(3).SetFocus
End If
End Sub
Private Sub Combo2_Click()
If Combo2.Text <> "正常" Then
Text3.Enabled = True
Text3.SetFocus
Else
Text3.Enabled = False
End If
End Sub
Private Sub Combo2_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Call Cmd_save_Click
End If
End Sub
Private Sub DataGrid1_Click()
Call JionBack '調用數據反綁定過程
Cmd_Del.Enabled = True
Cmd_Edit.Enabled = True
Cmd_Save.Enabled = False
End Sub
Private Sub DTPicker1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Text1(5).SetFocus
End If
End Sub
Private Sub Form_Load()
rtn = SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, 3) '運用API函數SetWindowPos,來實現使窗體置前的功能
'利用代碼連接數據庫
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db_kcgl.mdb;Persist Security Info=False"
Adodc1.RecordSource = "select * from tb_kcpd" '連接庫存盤點數據表
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
Me.Left = (Screen.Width - Me.Width) / 2 '使窗體居中
Me.Top = (Screen.Height - Me.Height) / 2
DTPicker1.Value = Date '當窗體啟動的時候,使日期控件中的值為當前系統的日期時間
End Sub
Private Sub Text1_Change(Index As Integer)
Call main
If Index = 3 Then
adoRs.Open "select * from tb_KCXX where KC_name='" + Text1(1).Text + "' and KC_SPEC='" + Text1(2).Text + "' and KC_UNIT ='" + Combo1.Text + "'", adoCon, adOpenKeyset, adLockOptimistic
If adoRs.RecordCount > 0 Then
Dim SNum As Integer
'重新計算庫存貨品的數量
On Error GoTo x
SNum = Val(adoRs.Fields("KC_Num")) - Val(Text1(3).Text)
If SNum < 0 Then
Combo2.Text = "報益"
Text3.Text = Abs(SNum) '取絕對值
ElseIf SNum > 0 Then
Combo2.Text = "報損"
Text3.Text = SNum
ElseIf SNum = 0 Then
Combo2.Text = "正常"
Text3.Text = 0
End If
End If
End If
adoCon.Close
x:
Exit Sub
End Sub
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
If Index = 1 Then '如果光標落在第二個文本框當中,則調用frm_Tout窗體
frm_Tout.Show
frm_Tout.Left = 4100
frm_Tout.Top = 2750
frm_Tout.DataGrid1.SetFocus
ElseIf Index = 1 Then
Text1(2).SetFocus
ElseIf Index = 2 Then
Combo1.SetFocus
ElseIf Index = 3 Then
Text1(4).SetFocus
ElseIf Index = 4 Then
DTPicker1.SetFocus
ElseIf Index = 5 Then
Text2.SetFocus
End If
End If
End Sub
Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Combo2.SetFocus
End If
End Sub
Private Sub Timer1_Timer() '通過時鐘控件隨時檢測數據庫中記錄的條數
If Adodc1.Recordset.RecordCount > 0 Then
Label9.Caption = "目前數據庫中共有 " & Adodc1.Recordset.RecordCount & " 條出庫數據"
End If
End Sub
'*** 自定義一個數據反綁定的事件過程 ***
Private Sub JionBack()
Dim SLen As Integer
If Adodc1.Recordset.RecordCount > 0 Then
StrNum = Val(Adodc1.Recordset.Fields("pd_ID"))
SLen = Len(Trim(StrNum))
Select Case SLen '位數不足者補0
Case 1
StrTemp = "00000"
Case 2
StrTemp = "0000"
Case 3
StrTemp = "000"
Case 4
StrTemp = "00"
Case 5
StrTemp = "0"
Case 6
StrTemp = ""
End Select
On Error Resume Next '執行錯誤處理
Text1(0).Text = "Q" & Trim(StrTemp) & Trim(Str(StrNum))
Text1(1).Text = Adodc1.Recordset(1) '將數值信息反綁定到文本框當中
Text1(2).Text = Adodc1.Recordset(2)
Combo1.Text = Adodc1.Recordset(3)
Text1(3).Text = Adodc1.Recordset(4)
Text1(4).Text = Adodc1.Recordset(5)
DTPicker1.Value = Adodc1.Recordset(7)
Text1(5).Text = Adodc1.Recordset("pd_remark")
Text2.Text = Adodc1.Recordset.Fields("PD_Mpeople")
Combo2.Text = Adodc1.Recordset.Fields("PD_HPYC")
End If
End Sub
'*** 自定義一個數據刷新的事件過程 ***
Private Sub TRefresh()
Adodc1.RecordSource = "select * from tb_kcpd order by pd_ID"
Adodc1.Refresh
End Sub
'*** 自定義一個添加日志的事件過程 ***
Private Sub joinRZ()
Open (App.Path & "\系統日志.ini") For Input As #1
Do While Not EOF(1) '循環讀取文件中的數據
Line Input #1, Intext
TStr = TStr + Intext + Chr(13) + Chr(10)
Loop
Close #1
If ETemp = 0 Then '添加修改信息日志
TStr = TStr + " " + Name1 + " " + Format(Now, "yyyy-mm-dd hh:mm:ss") + " " + "修改票號 " + Text1(0).Text + "(" + Text1(1).Text + ")" + Chr(13) + Chr(10)
ElseIf ETemp = 1 Then '添加保存信息日志
TStr = TStr + " " + Name1 + " " + Format(Now, "yyyy-mm-dd hh:mm:ss") + " " + "刪除票號 " + Text1(0).Text + "(" + Text1(1).Text + ")" + Chr(13) + Chr(10)
End If
Open (App.Path & "\系統日志.ini") For Output As #1 '將日志信息保存到文件當中
Print #1, TStr
Close #1
End Sub
Private Sub Form_Unload(Cancel As Integer)
frm_main.Enabled = True
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -