Access交流中心

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

当离职表中的员工ID=员工基本资表中的员工ID时删除该员工

yaxun  发表于:2008-06-23 21:35:56  
复制

我想当离职表中的员工ID=员工基本资表中的员工ID时,在员工基本资料表中删除该员工

Private Sub 过数离职员工资料_Click()
On Error GoTo ERR_过数离职员工资料_Click
Dim I As Integer '循环变量
Dim STEMP As String '临时变量
Dim RS As New ADODB.Recordset '定义数组变量
Dim RS1 As New ADODB.Recordset

'打开数据表
STEMP = "SELECT * FROM 离职表"
RS.Open STEMP, CurrentProject.Connection, adOpenKeyset, adLockOptimistic '打开离职表数据集


STEMP = "SELECT * FROM 离职登记表"
RS1.Open STEMP, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If RS.RecordCount <= 0 Then
MsgBox "目前记录为空,无离职员工可过数!", vbOKOnly, "离职员工不能为空!"
Exit Sub
Else
RS.MoveFirst
For I = 1 To RS.RecordCount
RS1.AddNew
RS1("员工ID") = RS("员工ID")
RS1("部门ID") = RS("部门ID")
RS1("职务") = RS("职务")
RS1("姓名") = RS("姓名")
RS1("身份证ID") = RS("身份证ID")
RS1("性别") = RS("性别")
RS1("学历") = RS("学历")
RS1("入职日期") = RS("入职日期")
RS1("基本工资") = RS("基本工资")
RS1("家庭地址") = RS("家庭地址")
RS1("备注") = RS("备注")
RS1.Update
RS.MoveNext
Next I
Do While Not (RS.EOF)
'删除员工基本料中的对应员工资料
STEMP = "DELETE * FROM 员工基本资料 "
        STEMP = STEMP & "WHERE 员工ID=" & RS("员工ID") & ""
        '使用DoCmd对象的RunSQL方法执行查询
        DoCmd.RunSQL STEMP
Loop
STEMP = "DELETE * FROM 离职表"
DoCmd.RunSQL STEMP
End If
MsgBox "过数成功", vbOKOnly, "过数成功"
EXIT_过数离职员工资料_Click:
Exit Sub
ERR_过数离职员工资料_Click:
MsgBox Err.Description
Resume EXIT_过数离职员工资料_Click
End Sub

Private Sub 离职表_子窗体_Enter()
Me.过数离职员工资料.Enabled = True
Me.过数调动员工资料.Enabled = False
End Sub

 

Top
pc高手 发表于:2008-06-24 09:20:20

不知你要问什么问题?

 

Do While Not (RS.EOF)
'删除员工基本料中的对应员工资料
STEMP = "DELETE * FROM 员工基本资料 "
        STEMP = STEMP & "WHERE 员工ID=" & RS("员工ID") & ""
        '使用DoCmd对象的RunSQL方法执行查询
        DoCmd.RunSQL STEMP
Loop

你的这段代码,没有意义!



yaxun 发表于:2008-06-24 09:44:17

没意义?

 



符鸿敏 发表于:2008-06-24 22:28:21
哪需要那么复杂的代码!只要建一个符合离职表的选择查询和删除查询,然后在删除员工的命令按钮的单击事件中写下打开这两个查询就OK了!如还不明白的话,就和我QQ联系,传个附件给我帮你弄弄看。

十段 发表于:2008-06-25 18:02:53

你用下面的这个试试:

STEMP = "DELETE *  "
STEMP = STEMP & "FROM 员工基本资料 WHERE (((员工基本资料.员工ID) In (select 员工ID from 离职表 group by 员工ID)))""

DoCmd.RunSQL (STEMP)



符鸿敏 发表于:2008-06-25 21:10:02
我已将你要的效果做了一个示例。请到http://www.accessoft.com/blog/article-show.asp?userid=2251&Id=2084下载

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