Office中国论坛/Access中国论坛

标题: 如何根据条件追加数据,请高手帮我看看! [打印本页]

作者: qiu_ri2002    时间: 2005-10-17 19:06
标题: 如何根据条件追加数据,请高手帮我看看!
[attach]13660[/attach]

请各位教我,谢谢
作者: gaoqiwen    时间: 2005-10-18 00:48
看是否符合:

[attach]13664[/attach]


作者: sgrshh29    时间: 2005-10-18 01:41
这样不行,记录会重复的。觉得窗体的设计有些问题。
作者: gaoqiwen    时间: 2005-10-18 03:59
再加入不重复录入的条件哎!比如用姓名取得人员表与新增人员表的不同记录,以录入新记录
作者: qiu_ri2002    时间: 2005-10-19 02:57
谢谢各位!但是好像还是不行啊!我希望是有条件的添加,就是说如果“yes”,那么后两项必须都非空,非空则追加,不非空则提示
作者: sgrshh29    时间: 2005-10-19 17:14
以下是引用qiu_ri2002在2005-10-18 18:57:00的发言:



谢谢各位!

但是好像还是不行啊!我希望是有条件的添加,就是说如果“yes”,那么后两项必须都非空,非空则追加,不非空则提示



因为你的问题不明确,使人无法回复你.经过很长时间揣测你的意图,改了一下(揣测的时间与改动的时间之比约50:1),还不知是不是就是你所问的.[attach]13682[/attach]


作者: qiu_ri2002    时间: 2005-10-19 20:28
谢谢五楼的高手!不好意思,我是新手而且是外行,所以语言表达是不够专业的。还是有问题If Me.新增人员表子窗体.Form.Controls("是否做社保") = False Then MsgBox "此人不做社保,不添加到名单里.", , "提示": Exit Sub 这个判断是不需要的,但是取消这个判断后,下面的代码也不能正常执行。还有文件打开后,按钮是不执行操作的,只有在对子窗体进行了维护后,按钮正常执行,这是什么回事。
作者: sgrshh29    时间: 2005-10-19 20:43
1、“是否做社保”不需要,你把整句删除就可以了。2、这就是我在三楼说的,窗体的设计有点问题。
作者: qiu_ri2002    时间: 2005-10-19 20:46
很奇怪的是,我把它删了后,后面的代码不能运行,我不知道为什么?
作者: sgrshh29    时间: 2005-10-19 20:52
如果发现后面代码没有(注意:不是不能,如果不能运行,系统应该有提示的)运行,就说明你的光标没有停留在你想添加的那条记录上,或着那条记录的“是否做社保”<>true.所以说窗体设计有点问题。

[此贴子已经被作者于2005-10-19 12:57:42编辑过]


作者: qiu_ri2002    时间: 2005-10-19 21:03
我终于明白了!你做的比我想像的还高级,我要收藏起来,呵呵。你做的是鼠标要点到哪行,就追加哪行。我需要的是追加全部,不需要根据鼠标定位。把符合条件的行,追加到另一张表,同时删除已经追加的行,把不符条件的留下,并提示不能追加的原因。我这样说,应该是说清楚了吧?
作者: sgrshh29    时间: 2005-10-19 21:11
是的。恭喜你,终于明白了。
作者: qiu_ri2002    时间: 2005-10-19 21:16
可是你还没告诉我,怎么样能够不根据鼠标位置判断,而是全部判断,就向上面说的那样?
作者: sgrshh29    时间: 2005-10-19 21:27
看来是白白恭喜你了。在设计状态打开你的追加查询,把“姓名”字段的查询条件删除就可以了。在窗体操作查询时,把要追加的记录复选框勾上,不要追加的去掉勾,就可以实现你要的效果了。所以你的窗体还是有些问题的,操作不是很方便。
作者: qiu_ri2002    时间: 2005-10-19 22:26
看来我还是没有说清楚。复选框是否划勾,不是是否追加的条件。如果划勾了,那么基数和时间就必须有。如果不划勾,那么基数和时间不是必须有,但是也是可以追加的。我现在明白了,我们公司的系统开发了几年一直没有成功,看来很大的原因是我们没有掌握与程序设计员沟通的方法。
作者: sgrshh29    时间: 2005-10-19 22:48
老实说,我还是觉得你还是没有把所有的问题说清楚,因此暂时就无法回答了。
作者: qiu_ri2002    时间: 2005-10-19 23:15
呵呵,不好意思。姓名 是否做社保   基数     时间张三      不是                     2005-9李四       是            1000   2005-9王五       是                        2005-9这种情况下,张三不做社保,因此基数和时间,不是必须录入,可以追加。李四做社保 ,基数和时间都填写了,也可以追加。王五做社保,但是基数没有填写,因此不能追加,需要提示。最后,几经追加的张三和李四,从此窗体删除,只留下王五。这回应该说明白了。其实我上面的字面表达已经很清楚了,只是你在看我的文字之前,心中有自己的主观想法(你认为不做社保就没用追加)。不知道我说的对不对?
作者: sgrshh29    时间: 2005-10-19 23:29
我不是这个意思。请你说说已经追加过的记录是否要删除?这个需要追加的记录数据从何而来,是手工一条一条输入的,还是来自其它方法?
作者: qiu_ri2002    时间: 2005-10-19 23:36
哦比如,A表的3行数据中的2行符合条件,追加到B表。同时删除A表已经追加的2行。A表中的数据,是从excel中粘贴过来的。
作者: sgrshh29    时间: 2005-10-19 23:53
就是说,符合条件的就追加,追加后就删除,不合条件的就保留着?另外想问一下,既然不合条件的已经保留了,还要提示干什么呢?比如有10条不合条件,提示什么?提示其中某一条?提示10条?既然保留了的都是不合条件的,我觉得就不需要提示,有画蛇添足之嫌。

[此贴子已经被作者于2005-10-19 16:00:15编辑过]


作者: qiu_ri2002    时间: 2005-10-20 00:19
其实不是这样的。就是说,基数和时间都有了,也不一定就要做。基数和时间是做的条件而不是不做的条件。条件允许,但是未必要做,但是条件不允许,一定不能做。很多事情都是这样的。你的观点是有条件的就必须做,但是我的需求不是的。
作者: sgrshh29    时间: 2005-10-20 00:26
以下是引用qiu_ri2002在2005-10-19 14:26:00的发言:



看来我还是没有说清楚。

复选框是否划勾,不是是否追加的条件。如果划勾了,那么基数和时间就必须有。如果不划勾,那么基数和时间不是必须有,但是也是可以追加的。

我现在明白了,我们公司的系统开发了几年一直没有成功,看来很大的原因是我们没有掌握与程序设计员沟通的方法。

你仔细想想,留下来的记录都是复选框打了勾而基数和时间缺了1个或2个的,因为不打勾的都追加了。还要提示什么呢?
作者: qiu_ri2002    时间: 2005-10-20 01:15
你说的对,提示确实不是必须要的。但是,现在的例子中只有4个数据项,如果是40项,10多的复选框的时候,如果没有提示,将不知道因为哪项不合格,不能追加。
作者: fjnpit    时间: 2005-10-26 02:12
太好了




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