⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmpzcl.frm

📁 会计管理信息系统windows界面vb编程 会计管理信息系统windows界面vb编程
💻 FRM
📖 第 1 页 / 共 4 页
字号:
 
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 + -