'本模块用于计算个人所得税
'调用格式:所得税=Call所得税(应纳税所得)
'要使用本模块必须具备以下条件:
' 1、表:个人所得税比率表
' 应纳税所得下限额 纳税比率 速算扣除数
' 0 5 0
' 500 10 25
' 2000 15 125
' 5000 20 375
' 20000 25 1375
' 40000 30 3375
' 60000 35 6375
' 80000 40 10375
' 100000 45 15375
' 2、表:起征点表
' 起征点
' 2000
' 3、参数:应纳税所得
' 指除去个人承担的基本养老保险金、医疗保险金、
' 失业保险金,以及按省级政府规定标准缴纳的住房公积金等,
' 不需减去起征点金额
Public Function Call所得税(ByVal 应纳税所得额 As Double) As Double
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.ActiveConnection = CurrentProject.Connection
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic
rs.Open "Select * FROM 个人所得税比率表 orDER BY 应纳税所得下限额 DESC"
Dim rsQZD As ADODB.Recordset
Set rsQZD = New ADODB.Recordset
rsQZD.ActiveConnection = CurrentProject.Connection
rsQZD.CursorType = adOpenStatic
rsQZD.LockType = adLockOptimistic
rsQZD.Open "Select 起征点 FROM 起征点表"
Dim temp As Double
temp = 应纳税所得额 - rsQZD!起征点
Do Until rs.EOF
If temp > rs!应纳税所得下限额 Then
Call所得税 = temp * rs!纳税比率 / 100 - rs!速算扣除数
Exit Function
Else
rs.MoveNext
End If
Loop
End Function