Office中国论坛/Access中国论坛

标题: 为何更新一条记录变成更新全部记录,并且全部成一样的? [打印本页]

作者: 付谦    时间: 2006-3-9 18:39
标题: 为何更新一条记录变成更新全部记录,并且全部成一样的?
为何更新一条记录变成更新全部记录,并且全部成一样的?见:





Private Sub 学历类型_AfterUpdate()


     If Me.学历类型 = "现学历" Then


          strSQL1 = "UPDATE 员工,[员工学历学位] SET [员工].现学历=[员工学历学位].学历,[员工].现学历代码=[员工学历学位].学历代码,[员工].现毕业年月=[员工学历学位].终止年月,[员工].现毕业院校=DLOOKUP('[毕业院校(简称)]','全称-院校','员工学历学位.[毕业院校(全称)] = [全称-院校].[毕业院校(全称)]),[员工].现学位=[员工学历学位].学位,[员工].现学历途径=[员工学历学位].学历途径 WHERE [员工].姓名=[员工学历学位].姓名;"


     End If


End Sub


   以上程序能运行,但其中 [员工].现毕业院校=DLOOKUP('[毕业院校(简称)]','全称-院校','员工学历学位.[毕业院校(全称)] = [全称-院校].[毕业院校(全称)])有问题,它把员工表中所有人的现毕业院校都改成了同一学校,原意是只更新符合“员工学历学位”表中学历类型为 "现学历"的人。两表中的毕业院校有简称全称之别,此句还少不了。请高手给我出招,如何修改以上程序?谢!
作者: hi-wzj    时间: 2006-3-9 19:17
出错处: WHERE [员工].姓名=[员工学历学位].姓名;"
作者: 付谦    时间: 2006-3-9 20:30
除了现毕业院校更新出问题外,其他均正常.如楼上所说条件设置有问题,又怎样设呢?
作者: icecold    时间: 2006-3-9 21:19
如楼上所说
作者: 付谦    时间: 2006-3-10 19:35
怎么没有高手给我解决此难题,急!


作者: 付谦    时间: 2006-3-12 22:13
现附上数据库,打开"员工学历学位"窗体,在任一记录的其"学历类型"选"现学历",按理只更新员工表中相同记录的现毕业院校,结果把所有记录更新为这一记录的院校,其他字段更新都是对的.请高手帮助解决!!!!!!!!!!!!!!

[attach]16349[/attach]


盼大师们帮助解决我的难题,急!

[此贴子已经被作者于2006-3-13 15:18:19编辑过]


作者: 付谦    时间: 2006-3-13 23:22
难道无人可帮?问题无人可解?
作者: 付谦    时间: 2006-3-15 21:20
[em04]

再次请高手指点,天天看贴无结果
作者: 一点通    时间: 2006-3-15 21:48
1\你的操作过程是如何?

2\哪一个字段想获得什么样的结果?
作者: 付谦    时间: 2006-3-16 02:37
操作过程是:

      打开“员工学历学位 子窗体”,在任意一人的"学历类型"选"现学历"后,“员工”表中的这一人的“现毕业院校”就更新为“员工学历学位 子窗体”毕业院校(全称)”的简称。

现在的问题是:

       本想只更新选定这一人的“现毕业院校”内容,可它把“员工”表中所有记录都更新成这一人的“现毕业院校”内容了。

要求:

      更新限于选定人,院校名称并是简称。

请一点通高手帮助解决,谢谢!
作者: 付谦    时间: 2006-3-19 02:44
等了一周多时间了,无人帮助解决.我不会难道是大家都不会,唉!只好继续等了
作者: wuaza    时间: 2006-3-19 17:38
更新查询才不会理会你的if条件呢。

你应该把“学历类型 = "现学历" ” 这一条件放在where子句中。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3