Office中国论坛/Access中国论坛

标题: 请教生成新表时,如何同时追加当前日期? [打印本页]

作者: qiu_ri2002    时间: 2005-10-20 19:44
标题: 请教生成新表时,如何同时追加当前日期?
表a中,有姓名、年龄、申请时间等等字段,其中申请时间是空的。

使用“生成新表查询”生成新表,其中包含姓名、年龄、申报时间字段。

请问,如何在生成新表的同时,将当前时间追加到 申报时间 字段中。

请各位帮忙了,谢谢













[此贴子已经被作者于2005-10-20 11:44:53编辑过]


作者: xcpred    时间: 2005-10-20 19:49
使用掩码可以吗?
作者: qiu_ri2002    时间: 2005-10-20 20:15
可以的
作者: qiu_ri2002    时间: 2005-10-20 22:42
没有人告诉我吗?我可是诚心求教的啊!
作者: zhengjialon    时间: 2005-10-20 22:47
可以用DATE()函数,生成的当前日期追加到表中就可以了.
作者: qiu_ri2002    时间: 2005-10-20 22:51
这种方法我知道,但是需要我不想这样。我希望能用代码实现,请高手教我!
作者: sgrshh29    时间: 2005-10-21 00:15
以下是引用qiu_ri2002在2005-10-20 14:51:00的发言:



这种方法我知道,但是需要我不想这样。我希望能用代码实现,请高手教我!



总版主就是用代码的办法,你不想这样,那要怎样?
作者: qiu_ri2002    时间: 2005-10-21 00:40
我说的方法是:首先用date()建立一个更新查询,更新申报时间,然后生成新表。这个方法要先后运行2个查询,系统会提示2次,是否更新数据,我烦琐。因此我想通过代码生成时间,然后通过查询生成新表。我不太清楚,版主说的是什么方法?
作者: 海狸先生    时间: 2005-10-21 00:45
生成新表时不能直接用DATE加入时间吗?
作者: qiu_ri2002    时间: 2005-10-21 00:49
呵呵,我不会写这个代码,不知道怎么加,不好意思!
作者: sgrshh29    时间: 2005-10-21 00:50
"使用“生成新表查询”生成新表,其中包含姓名、年龄、申报时间字段。"如果你的日期时间就是这个查询的时间,在你自己所说的上面这个查询中,直接把日期时间加上.一个查询就解决了.
作者: qiu_ri2002    时间: 2005-10-21 01:06
是这样的,我生成新表时,使用的是 “生成表查询”,而添加申报时间需要使用“更新查询”。这样中查询的类型不一样,无法同时使用。
作者: sgrshh29    时间: 2005-10-21 01:25
你的标题不就是   请教生成新表时,如何同时追加当前日期  吗?怎么又成了无法同时添加?搞不懂.[em06]

[此贴子已经被作者于2005-10-20 17:25:03编辑过]


作者: qiu_ri2002    时间: 2005-10-21 18:12
是这样的。我现在的方法是建立两个查询,第一个是date()的更新查询,第二个是生成新表查询。然后通过代码先后运行以上两个查询,这样做能够实现我的目标。但是access在运行查询时,总有系统提示 选择“是”或“否”。因为我运行date()时,不希望提示,所以想通过代码实现。
作者: sgrshh29    时间: 2005-10-21 19:29
SELECT 源表.字段1, 源表.字段2, Now() AS 日期 INTO 新表 FROM 源表; '生成表查询

INSERT INTO 目标表 ( 字段1, 字段2, 日期 ) SELECT 源表.字段1, 源表.字段2, Now() AS 日期 FROM 源表;   '追加查询

如果只要日期不要时间,就把Now()改为Date。麻烦您以后提这一类问题能提供附件,谢谢!

[此贴子已经被作者于2005-10-21 11:32:56编辑过]


作者: qiu_ri2002    时间: 2005-10-21 20:38
字段很多!SELECT [五险一金通知单].[小组], [五险一金通知单].[项目负责人], [五险一金通知单].[申报状态], [五险一金通知单].[姓名], [五险一金通知单].[身份证号], [五险一金通知单].[客户名称], [五险一金通知单].[户口性质], [五险一金通知单].[备注], [五险一金通知单].[社保中智负担], [五险一金通知单].[社保开始时间], [五险一金通知单].[社保转移单], [五险一金通知单].[社保2004前基数], [五险一金通知单].[社保2004基数], [五险一金通知单].[社保2005基数], [五险一金通知单].[医疗手册编号], [五险一金通知单].[工作居住证编号], [五险一金通知单].[工作居住证有效期], [五险一金通知单].[医疗开始时间], [五险一金通知单].[有无手册], [五险一金通知单].[医疗2004前基数], [五险一金通知单].[医疗2004基数], [五险一金通知单].[医疗2005基数], [五险一金通知单].[医疗中智负担], [五险一金通知单].[公积金开始时间], [五险一金通知单].[公积金2005月缴存额], [五险一金通知单].[公积金2005中智负担], [五险一金通知单].[申报社保], [五险一金通知单].[公积金2004月缴存额], [五险一金通知单].[公积金2004中智负担], [五险一金通知单].[申报医疗], [五险一金通知单].[申报公积金], [五险一金通知单].[申报补充医疗], [五险一金通知单].[医疗方案], [五险一金通知单].[子女医疗方案], [五险一金通知单].[方案说明], [五险一金通知单].[补充医疗开始时间], [五险一金通知单].[有无返还], [五险一金通知单].[商保方案], now() AS 申报时间 INTO 五险一金通知单申报

FROM 五险一金通知单

WHERE ((([五险一金通知单].[项目负责人]) Like IIf(IsNull([Forms]![申报办理情况]![项目负责人]),'*',[Forms]![申报办理情况]![项目负责人])) And (([五险一金通知单].[申报状态])="未申报") And (([五险一金通知单].[姓名]) Like IIf(IsNull([Forms]![申报办理情况]![姓名]),'*',[Forms]![申报办理情况]![姓名])) And (([五险一金通知单].[客户名称]) Like IIf(IsNull([Forms]![申报办理情况]![客户名称]),'*',[Forms]![申报办理情况]![客户名称])));运行后,新表的“申报时间”没有问题了。但是原表的申报时间没有修改。应该是 先update 原表“申报时间”         再INTO 新表。我原先说的“追加”不准确,应该是UPDATE.
作者: sgrshh29    时间: 2005-10-21 21:34
原来你是追加查询,而且要把原有的日期也改成同一天的,也就是原来的日期不保存,是不是这个意思?要理解你的意图太难了。
作者: qiu_ri2002    时间: 2005-10-21 21:57
是先UPDATE 五险一金通知单 SET 五险一金通知单.申报时间 = Now()

WHERE (((五险一金通知单.申报状态)="未申报") AND ((五险一金通知单.项目负责人) Like IIf(IsNull([Forms]![申报办理情况]![项目负责人]),'*',[Forms]![申报办理情况]![项目负责人])) AND ((五险一金通知单.姓名) Like IIf(IsNull([Forms]![申报办理情况]![姓名]),'*',[Forms]![申报办理情况]![姓名])) AND ((五险一金通知单.客户名称) Like IIf(IsNull([Forms]![申报办理情况]![客户名称]),'*',[Forms]![申报办理情况]![客户名称])))'根据“条件”更新原表的“申报时间”然后再SELECT [五险一金通知单].[小组], [五险一金通知单].[项目负责人], [五险一金通知单].[申报状态], [五险一金通知单].[姓名], [五险一金通知单].[身份证号], [五险一金通知单].[客户名称], [五险一金通知单].[户口性质], [五险一金通知单].[备注], [五险一金通知单].[社保中智负担], [五险一金通知单].[社保开始时间], [五险一金通知单].[社保转移单], [五险一金通知单].[社保2004前基数], [五险一金通知单].[社保2004基数], [五险一金通知单].[社保2005基数], [五险一金通知单].[医疗手册编号], [五险一金通知单].[工作居住证编号], [五险一金通知单].[工作居住证有效期], [五险一金通知单].[医疗开始时间], [五险一金通知单].[有无手册], [五险一金通知单].[医疗2004前基数], [五险一金通知单].[医疗2004基数], [五险一金通知单].[医疗2005基数], [五险一金通知单].[医疗中智负担], [五险一金通知单].[公积金开始时间], [五险一金通知单].[公积金2005月缴存额], [五险一金通知单].[公积金2005中智负担], [五险一金通知单].[申报社保], [五险一金通知单].[公积金2004月缴存额], [五险一金通知单].[公积金2004中智负担], [五险一金通知单].[申报医疗], [五险一金通知单].[申报公积金], [五险一金通知单].[申报补充医疗], [五险一金通知单].[医疗方案], [五险一金通知单].[子女医疗方案], [五险一金通知单].[方案说明], [五险一金通知单].[补充医疗开始时间], [五险一金通知单].[有无返还], [五险一金通知单].[商保方案], 五险一金通知单.申报时间 INTO 五险一金通知单申报

FROM 五险一金通知单

WHERE ((([五险一金通知单].[项目负责人]) Like IIf(IsNull([Forms]![申报办理情况]![项目负责人]),'*',[Forms]![申报办理情况]![项目负责人])) And (([五险一金通知单].[申报状态])="未申报") And (([五险一金通知单].[姓名]) Like IIf(IsNull([Forms]![申报办理情况]![姓名]),'*',[Forms]![申报办理情况]![姓名])) And (([五险一金通知单].[客户名称]) Like IIf(IsNull([Forms]![申报办理情况]![客户名称]),'*',[Forms]![申报办理情况]![客户名称])));'根据“条件”生成新表< 五险一金通知单申报>(注意:两个查询的条件是一样的)我就是不知道 怎样能够 先 update 然后 into 新表


作者: wuaza    时间: 2005-10-21 22:14
相信大多数人看到这么长的代码都会退缩的。
作者: sgrshh29    时间: 2005-10-21 22:40
以下是引用qiu_ri2002在2005-10-21 12:38:00的发言:



字段很多!

SELECT [五险一金通知单].[小组], [五险一金通知单].[项目负责人], [五险一金通知单].[申报状态], [五险一金通知单].[姓名], [五险一金通知单].[身份证号], [五险一金通知单].[客户名称], [五险一金通知单].[户口性质], [五险一金通知单].[备注], [五险一金通知单].[社保中智负担], [五险一金通知单].[社保开始时间], [五险一金通知单].[社保转移单], [五险一金通知单].[社保2004前基数], [五险一金通知单].[社保2004基数], [五险一金通知单].[社保2005基数], [五险一金通知单].[医疗手册编号], [五险一金通知单].[工作居住证编号], [五险一金通知单].[工作居住证有效期], [五险一金通知单].[医疗开始时间], [五险一金通知单].[有无手册], [五险一金通知单].[医疗2004前基数], [五险一金通知单].[医疗2004基数], [五险一金通知单].[医疗2005基数], [五险一金通知单].[医疗中智负担], [五险一金通知单].[公积金开始时间], [五险一金通知单].[公积金2005月缴存额], [五险一金通知单].[公积金2005中智负担], [五险一金通知单].[申报社保], [五险一金通知单].[公积金2004月缴存额], [五险一金通知单].[公积金2004中智负担], [五险一金通知单].[申报医疗], [五险一金通知单].[申报公积金], [五险一金通知单].[申报补充医疗], [五险一金通知单].[医疗方案], [五险一金通知单].[子女医疗方案], [五险一金通知单].[方案说明], [五险一金通知单].[补充医疗开始时间], [五险一金通知单].[有无返还], [五险一金通知单].[商保方案], now() AS 申报时间 INTO 五险一金通知单申报

FROM 五险一金通知单

WHERE ((([五险一金通知单].[项目负责人]) Like IIf(IsNull([Forms]![申报办理情况]![项目负责人]),'*',[Forms]![申报办理情况]![项目负责人])) And (([五险一金通知单].[申报状态])="未申报") And (([五险一金通知单].[姓名]) Like IIf(IsNull([Forms]![申报办理情况]![姓名]),'*',[Forms]![申报办理情况]![姓名])) And (([五险一金通知单].[客户名称]) Like IIf(IsNull([Forms]![申报办理情况]![客户名称]),'*',[Forms]![申报办理情况]![客户名称])));

运行后,新表的“申报时间”没有问题了。但是原表的申报时间没有修改。

应该是 先update 原表“申报时间”         再INTO 新表。

我原先说的“追加”不准确,应该是UPDATE.



DoCmd.SetWarnings False

DoCmd.OpenQuery "追加查询", , acEdit

DoCmd.OpenQuery "更新查询", , acEdit

DoCmd.SetWarnings True

其中追加查询如下:

INSERT INTO 五险一金通知单申报 SELECT 五险一金通知单.* FROM 五险一金通知单;

其中更新查询如下:

UPDATE 五险一金通知单申报 SET 五险一金通知单申报.申报时间 = Now();



顺便问一下,为什么你不肯把文件上传呢?


作者: qiu_ri2002    时间: 2005-10-21 23:51
传了2次都不行,说是有“非法字符”




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