本帖最后由 jsgj2023 于 2019-1-17 14:05 编辑
模块3.凭证录入- Sub 凭证录入()
- Dim arr, arr1, x As Integer, mydate As Date, hm As String, sr As String, SQL As String
- Dim mydata As New data查询
- With Sheets("凭证录入")
- mydate = .[C3]: hm = .[f3]
- If mydata.是否存在("和美贸易", "凭证号", hm) = True Or Len(Range("a5")) = 0 Then
- MsgBox "该凭证已存在或没有数据,请不要重复录入并添加数据!"
- Exit Sub
- Else
- r = .Cells(Rows.Count, 2).End(xlUp).Row - 2
- arr = .Range("a5:f" & r)
-
- If 借贷平衡检查(arr) Then
- For x = 1 To UBound(arr)
- If Len(arr(x, 2)) Then
- arr(x, 3) = IIf(IsEmpty(arr(x, 3)), 0, arr(x, 3))
- arr(x, 4) = IIf(IsEmpty(arr(x, 4)), 0, arr(x, 4))
- arr(x, 5) = IIf(IsEmpty(arr(x, 5)), 0, arr(x, 5))
- arr(x, 6) = IIf(IsEmpty(arr(x, 6)), 0, arr(x, 6))
- sr = "#" & mydate & "#" & ",'" & hm & "','" & arr(x, 1) & "','" & arr(x, 2) & "','"
- sr = sr & arr(x, 3) & "','" & arr(x, 4) & "'," & Round(arr(x, 5), 2) & "," & arr(x, 6)
- SQL = "Insert into 和美贸易 (记账日期, 凭证号, 摘要,总账科目,二级科目,三级科目,借方金额,贷方金额) VALUES(" & sr & ")"
- mydata.执行sql命令 (SQL)
- End If
- Next x
- Call 清空已录数据及凭证号
- MsgBox "成功录入数据库"
- Else
- MsgBox "借贷不平衡,请检查!"
- Exit Sub
- End If
- End If
- End With
- End Sub
- Function 借贷平衡检查(arr) As Boolean
- Dim a As Single
- Dim b As Single
- a = Application.Sum(Application.Index(arr, , 5))
- b = Application.Sum(Application.Index(arr, , 6))
- If a <> b Then
- 借贷平衡检查 = False
- Else
- 借贷平衡检查 = True
- End If
- End Function
- Sub 清空已录数据及凭证号()
- Dim currentNum As Integer '当前凭证号
- With Sheets("凭证录入")
- r = .Cells(Rows.Count, 1).End(xlUp).Row - 2 - 4
- .Range("a5").Resize(r, 6).ClearContents
- currentNum = .Range("f3")
- currentNum = currentNum + 1
- .Range("f3") = currentNum
- End With
- End Sub
复制代码
|