Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求助运行时。。系统提示话FilterData米定义

六家  发表于:2009-10-27 16:54:41  
复制

Dim aEmp, aPro, aDuty, bkMark, iID As Integer

Private Sub Form_Load()
strDB = "\DATA\工资.mdb"
Conn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path + strDB + ";Persist Security Info=False"

Dim strSQL2 As String, rs As ADODB.Recordset

strSQL2 = "SELECT * FROM [职务表]" '将职务及对应工资保存到数组中
Set rs = QueryExt(strSQL2)
aDuty = rs.GetRows

strSQL2 = "SELECT * FROM [职称表]" '将职称及对应工资保存到数组中
Set rs = QueryExt(strSQL2)
aPro = rs.GetRows

strSQL2 = "SELECT ID,姓名,基本工资,职务,职称 FROM [职员表]" '将员工基本数据保存到数组中
Set rs = QueryExt(strSQL2)
aEmp = rs.GetRows

With cmbEmp
For i = 0 To UBound(aEmp, 2) '将员工数据添加到组合控件中
.AddItem aEmp(1, i)
Next
End With

Status (False)
ClearData
Adodc1.ConnectionString = Conn
Adodc1.CommandType = adCmdText
' FilterData
End Sub
Private Sub Adodc1_WillMove(ByVal adReason As ADODB.EventReasonEnum, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset20)
Dim i_ID As Integer, strDate As String
On Error GoTo err1
With Adodc1.Recordset
b1 = Not (.BOF)
cmdFirst.Enabled = b1
cmdPre.Enabled = b1
b1 = Not (.EOF)
cmdNext.Enabled = b1
cmdLast.Enabled = b1
If .EOF And .BOF Then
cmdModify.Enabled = False
Else
cmdModify.Enabled = True
i_ID = .Fields("员工ID")
strDate = .Fields("日期")
txtDate.Text = strDate
For i = 0 To UBound(aEmp, 2)
If aEmp(0, i) = i_ID Then
txtName.Text = aEmp(1, i)
Exit For
End If
Next
End If
End With
err1:

End Sub
'
'Private Sub cmbEmp_Change()
' FilterData
'End Sub
'
'Private Sub cmbEmp_Click()
' FilterData
'End Sub

Private Sub cmdModify_Click()
If cmdModify.Caption = "修改" Then
bkMark = Adodc1.Recordset.Bookmark
cmdModify.Caption = "保存"
cmdCancel.Enabled = True

cmdFirst.Enabled = False
cmdPre.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False

Status (True)
Else
cmdModify.Caption = "修改"
cmdCancel.Enabled = False
Status (False)
Adodc1.Recordset.Update
Adodc1.Recordset.Requery
Adodc1.Refresh
Adodc1.Recordset.Bookmark = bkMark
End If
End Sub

Private Sub cmdFirst_Click()
Dim b1 As Boolean
Adodc1.Recordset.MoveFirst
cmdFirst.Enabled = False
cmdPre.Enabled = False
b1 = Not (Adodc1.Recordset.EOF)
cmdNext.Enabled = b1
cmdLast.Enabled = b1
End Sub

Private Sub cmdPre_Click()
Dim b1 As Boolean
If Adodc1.Recordset.BOF Then
MsgBox "已经是第一条记录!", vbOKOnly + vbExclamation, "提示"
cmdFirst.Enabled = False
cmdPre.Enabled = False
Else
Adodc1.Recordset.MovePrevious
b1 = Not (Adodc1.Recordset.BOF)
cmdFirst.Enabled = b1
cmdPre.Enabled = b1
End If
b1 = Not (Adodc1.Recordset.EOF)
cmdNext.Enabled = b1
cmdLast.Enabled = b1
End Sub

Private Sub cmdNext_Click()
Dim b1 As Boolean
If Adodc1.Recordset.EOF Then
MsgBox "已经是最后一条记录!", vbOKOnly + vbExclamation, "提示"
cmdNext.Enabled = False
cmdLast.Enabled = False
Else
Adodc1.Recordset.MoveNext
b1 = Not (Adodc1.Recordset.EOF)
cmdNext.Enabled = b1
cmdLast.Enabled = b1
End If
b1 = Not (Adodc1.Recordset.BOF)
cmdFirst.Enabled = b1
cmdPre.Enabled = b1
End Sub

Private Sub cmdLast_Click()
Dim b1 As Boolean
Adodc1.Recordset.MoveLast
cmdLast.Enabled = False
cmdNext.Enabled = False
b1 = Not (Adodc1.Recordset.BOF)
cmdFirst.Enabled = b1
cmdPre.Enabled = b1
End Sub

Private Sub cmdCalc_Click(Index As Integer)
Dim cur1 As Currency, cur2 As Currency
cur1 = Val(txtBasePay.Text) + Val(txtDuty.Text) '基本工资+职务津贴
cur1 = cur1 + Val(txtPro.Text) + Val(txtBonus.Text) '职称津贴+奖金
cur1 = cur1 + Val(txtHouse.Text) '房贴
If Index = 0 Then
txtPension.Text = Round(cur1 * Pension_Rate, 2) '养老保险
ElseIf Index = 1 Then
txtMedi.Text = Round(cur1 * Medi_Rate, 2)
End If
txtSubtotal1.Text = cur1 '应发工资小计

cur2 = Val(txtPension.Text) + Val(txtMedi.Text) '养老保险+医疗保险
cur2 = cur2 + Val(txtHouseRes.Text) + Val(txtOther.Text) '住房公积金+其他代扣
txtSubtotal2.Text = cur2 '代扣项目小计

txtTax.Text = CountTax(cur1 - cur2 + Val(txtOther.Text)) '个人所得税(扣除养老、医保和住房公积金)

txtFinal.Text = cur1 - cur2 - Val(txtTax.Text) '实发工资End Sub
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
Private Sub cmdCancel_Click()
cmdCancel.Enabled = False
cmdModify.Caption = "修改"
EnabledCon (False)
Adodc1.Recordset.Requery
Adodc1.Recordset.Bookmark = bkMark
End Sub


'Private Sub dtpDate_Change()
' FilterData
'End Sub
'
'Private Sub dtpDate_Click()
' FilterData
'
'End Sub


Private Sub Status(bShow As Boolean) '设置允许或禁止控件
txtBasePay.Enabled = bShow
txtDuty.Enabled = bShow
txtPro.Enabled = bShow
txtBonus.Enabled = bShow
txtHouse.Enabled = bShow
txtPension.Enabled = bShow
txtMedi.Enabled = bShow
txtHouseRes.Enabled = bShow
txtOther.Enabled = bShow
For i = 0 To 5
cmdCalc(i).Enabled = bShow
Next
End Sub
Private Sub ClearData() '清空窗体中的数据
txtBasePay.Text = ""
txtDuty.Text = ""
txtPro.Text = ""
txtBonus.Text = ""
txtHouse.Text = ""
txtPension.Text = ""
txtMedi.Text = ""
txtHouseRes.Text = ""
txtOther.Text = ""
cmbEmp.Text = ""
txtName.Text = ""
txtDate.Text = ""

 

Top
andymark 发表于:2009-10-27 17:09:54

FilterData 是自定义的函数或过程

 

 

检查模块或窗体中是否存在FilterData函数或过程

 

在COPY代码时,应该一起COPY过来才行



总记录:1篇  页次:1/1 9 1 :