📄 frmpzcl.frm
字号:
End Sub
'结束审核,回到凭证录入
Private Sub Command2_Click()
DataGrid1.Refresh
SSTab1.Tab = 0
End Sub
'当datagrid增加一条记录时,将凭证号等一并增加
Private Sub DataGrid1_OnAddNew()
凭证号.Text = Int(凭证号1.Text)
日期.Text = DTPicker1.Value
附件.Text = 附件1.Text
j = j + 1
End Sub
'此函数当用户点击凭证代码或凭证名称时,调用frame2控件
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
If LastCol = 2 Or LastCol = 1 Then
Frame2.Visible = True
DataGrid4.SetFocus
End If
End Sub
'当用户点击时,选中一行
Private Sub DataGrid4_Click()
DataGrid4.MarqueeStyle = dbgHighlightRow
End Sub
'将datagird4科目代码赋给datagrid1的科目代码
Private Sub DataGrid4_DblClick()
DataGrid1.Columns("科目名称").Text = DataGrid4.Columns("科目名称").Text
DataGrid1.Columns("科目代码").Text = DataGrid4.Columns("科目代码").Text
Frame2.Visible = False
End Sub
'当datagrid4失去焦点时,frame2隐藏
Private Sub DataGrid4_LostFocus()
Frame2.Visible = flase
End Sub
Private Sub DTPicker1_Change()
日期.Text = DTPicker1.Value
End Sub
Private Sub DTPicker1_Click()
日期.Text = DTPicker1.Value
End Sub
'from_laod时,初始化变量,并显示可以添加的凭证号
Private Sub Form_Load()
Dim strSQL As String
'刷新
flag = False
j = 0
flag1 = False
日期.Text = DTPicker1.Value
SSTab1.top = frmHelp.top + 2500
SSTab1.Left = frmHelp.Left + 2000
'显示当前凭证号
strSQL = "select * from pzls where 凭证号=" & addnew + 1
凭证号1.Text = addnew + 1
凭证号1.Text = Format(凭证号1.Text, "00000")
'连接Adodc
Adodc1.ConnectionString = ADOcn
Adodc1.CursorLocation = adUseClient
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = strSQL
Adodc1.Refresh
'连接DateGrid,并只显示相关数据
Set DataGrid1.DataSource = Adodc1
DataGrid1.Columns("凭证号").Visible = False
DataGrid1.Columns("日期").Visible = False
DataGrid1.Columns("制单人").Visible = False
DataGrid1.Columns("附件").Visible = False
DataGrid1.Columns("审核人").Visible = False
'DataGrid1.Columns("出纳人").Visible = False
DataGrid1.Columns("记账人").Visible = False
DataGrid1.Columns("审核标志").Visible = False
DataGrid1.Columns("记账标志").Visible = False
'更新
DataGrid1.Refresh
End Sub
Private Sub Option1_Click()
If Option1.Value = True Then
Text3.Enabled = True
Text4.Enabled = True
DTPicker2.Enabled = False
DTPicker3.Enabled = False
Else
Text3.Enabled = False
Text4.Enabled = False
End If
End Sub
Private Sub Option2_Click()
If Option2.Value = True Then
DTPicker2.Enabled = True
DTPicker3.Enabled = True
Text3.Enabled = False
Text4.Enabled = False
Else
DTPicker2.Enabled = False
DTPicker3.Enabled = False
End If
End Sub
'实现frame2的功能
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1
Adodc2.RecordSource = "select 科目代码,科目名称,科目类别,余额方向 from kmzd order by 科目代码 asc"
Adodc2.Refresh
Set DataGrid4.DataSource = Adodc2
DataGrid4.Refresh
Case 2
Adodc2.RecordSource = "select 科目代码,科目名称,科目类别,余额方向 from kmzd where 科目类别='资产' order by 科目代码 asc"
Adodc2.Refresh
Set DataGrid4.DataSource = Adodc2
Case 3
Adodc2.RecordSource = "select 科目代码,科目名称,科目类别,余额方向 from kmzd where 科目类别='负债' order by 科目代码 asc"
Adodc2.Refresh
Set DataGrid4.DataSource = Adodc2
Case 4
Adodc2.RecordSource = "select 科目代码,科目名称,科目类别,余额方向 from kmzd where 科目类别='权益' order by 科目代码 asc"
Adodc2.Refresh
Set DataGrid4.DataSource = Adodc2
Case 5
Adodc2.RecordSource = "select 科目代码,科目名称,科目类别,余额方向 from kmzd where 科目类别='成本' order by 科目代码 asc"
Adodc2.Refresh
Set DataGrid4.DataSource = Adodc2
Case 6
Adodc2.RecordSource = "select 科目代码,科目名称,科目类别,余额方向 from kmzd where 科目类别='损益' order by 科目代码 asc"
Adodc2.Refresh
Set DataGrid4.DataSource = Adodc2
End Select
End Sub
Private Sub 保存_Click()
Dim sql As String
Dim rs As New Recordset
Dim i As Integer
Dim temp1, temp2 As Integer
'以下两句实现为那些没有用tab键实现保存的用户保存数据
'SendKeys ("{TAB}")
'SendKeys ("{TAB}")
DataGrid1.Refresh
If j < 2 And flag1 = False Then
MsgBox "您的输入格式不正确,请参照友好提示"
frmHelp.Show 1
Exit Sub
End If
sql = "select * from pzls where 凭证号=" & Int(凭证号1.Text)
rs.Open sql, ADOcn, 1, 3
If 审核人1.Text = "" Or 制单人1.Text = "" Or 记账人1.Text = "" Or 出纳人1.Text = "" Then
MsgBox "制单人,审核人,记账人,出纳人不能为空"
sql = "Delete * From pzls Where 凭证号=" & Int(凭证号1.Text)
ADOcn.Execute sql
Form_Load
Exit Sub
End If
'判断借方金额和贷方金额是否相等,不相等则重新输入,并更新制单人等的信息
For i = 0 To rs.RecordCount - 1
temp1 = temp1 + rs("借方金额")
temp2 = temp2 + rs("贷方金额")
rs("审核人") = 审核人1.Text
rs("制单人") = 制单人1.Text
rs("记账人") = 记账人1.Text
'rs("出纳人") = 出纳人1.Text
rs("日期") = DTPicker1.Value
rs.Update
rs.MoveNext
Next i
If temp1 <> temp2 Then
MsgBox "借方金额和贷方金额不相等,确保您的输入格式正确,请参照友好提示"
frmHelp.Show 1
sql = "Delete * From pzls Where 凭证号=" & Int(凭证号1.Text)
ADOcn.Execute sql
Form_Load
Set rs = Nothing
Exit Sub
Else
MsgBox "保存成功"
flag = True
下一张.Enabled = True
Call 下一张_Click
End If
Set rs = Nothing
End Sub
Private Sub 附件1_KeyPress(KeyAscii As Integer)
If (Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9") And KeyAscii <> 8 Then
KeyAscii = 0
End If
End Sub
'删除所选凭证号
Private Sub 删除_Click()
Dim sql As String
Dim a As Integer
a = MsgBox("您确定要删除", vbYesNo)
If a = vbYes Then
sql = "Delete * From pzls Where 凭证号=" & Int(凭证号1.Text)
ADOcn.Execute sql
Form_Load
End If
End Sub
'制单人和审核人不能相同
Private Sub 审核人1_LostFocus()
If 制单人1.Text = 审核人1.Text And 制单人1.Text <> "" Then
MsgBox "制单人和审核人不能相同"
审核人1.SetFocus
审核人1.Text = ""
End If
End Sub
Private Sub 刷新_Click()
Call Form_Load
制单人1.Text = ""
附件1.Text = ""
出纳人1.Text = ""
审核人1.Text = ""
记账人1.Text = ""
End Sub
'实际上跟form_unload原理是一样的
Private Sub 退出_Click()
Dim sql As String
Dim a As Integer
a = MsgBox("是否保存凭证", vbYesNoCancel)
'如果否则不保存记录
If a = vbNo Then
DataGrid1.DataChanged = False
End
'否则保存当前纪录
Else
保存_Click
End
End If
End Sub
Private Sub 下一张_Click()
'凭证号自动加1
Form_Load
制单人1.Text = ""
附件1.Text = ""
出纳人1.Text = ""
审核人1.Text = ""
记账人1.Text = ""
End Sub
'修改凭证号
Private Sub 修改_Click()
Dim a As Integer
flag1 = True
Dim strSQL As String
On Error Resume Next
a = Int(InputBox("请输入要修改的凭证号", "修改"))
'判断该凭证是否被审核
Dim rs As New Recordset
strSQL = "select top 1 审核标志,凭证号 from pzls where 凭证号=" & a
Set rs = ADOcn.Execute(strSQL)
If Not rs.EOF Then
If rs(0) = -1 Then
MsgBox "该凭证已被审核,不能修改"
Exit Sub
End If
Else
MsgBox "数据不存在"
Exit Sub
End If
'显示当前凭证号
strSQL = "select * from pzls where 凭证号=" & a
'连接Adodc
Adodc1.ConnectionString = ADOcn
Adodc1.CursorLocation = adUseClient
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = strSQL
Adodc1.Refresh
'连接DateGrid,并只显示相关数据
Set DataGrid1.DataSource = Adodc1
DataGrid1.Columns("凭证号").Visible = False
DataGrid1.Columns("日期").Visible = False
DataGrid1.Columns("制单人").Visible = False
DataGrid1.Columns("附件").Visible = False
DataGrid1.Columns("审核人").Visible = False
'DataGrid1.Columns("出纳人").Visible = False
DataGrid1.Columns("记账人").Visible = False
DataGrid1.Columns("审核标志").Visible = False
DataGrid1.Columns("记账标志").Visible = False
凭证号1.Text = 凭证号.Text
凭证号1.Text = Format(凭证号1.Text, "00000")
DTPicker1.Value = 日期.Text
附件1.Text = 附件.Text
制单人1.Text = 制单人.Text
审核人1.Text = 审核人.Text
记账人1.Text = 记账人.Text
'出纳人1.Text = 出纳人.Text
'更新
DataGrid1.Refresh
End Sub
'用于判断凭证号
Private Function addnew() As Integer
Dim top As String
Dim rs As New Recordset
Set rs = ADOcn.Execute("select top 1 凭证号 from pzls order by 凭证号 desc")
If rs.BOF Or rs.EOF Then
addnew = 0
Else
top = rs(0)
addnew = Int(top)
End If
End Function
Private Sub Form_Unload(Cancel As Integer)
Dim sql As String
Dim a As Integer
'如果不是凭证录入,那么直接退出
If SSTab1.Tab <> 0 Then
End
End If
If flag = False Then
a = MsgBox("是否保存凭证", vbYesNoCancel)
'如果否则不保存记录
If a = vbNo Then
DataGrid1.DataChanged = False
'如果取消则不做处理
ElseIf a = vbCancel Then
Cancel = True
'否则保存当前纪录
Else
保存_Click
End If
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -