不同表之间数据插入问题
表a:
考勤时间 所在部门 职工编号 姓名 ...(省略)
2006-1 人事部 100000 张三
2006-1 人事部 100001 李四
2006-1 产品部 100002 陈成
...... ...... ...... .....
...... ...... ...... .....
...... ...... ...... .....
表b:
考勤时间 所在部门 应出勤人数 应出勤天数 实出勤天数 ...(省略)
..............................没数据................................
我想把表a的两个字段"考勤时间"和"所在部门"的值插入表b的两个字段"考勤时间"和"所在部门"中,插入时去除重复的字段,因为表b是对表a的统计,而且只对某月某部门进行统计,如"2006-1 人事部"等
我是这样实现的:
在 Form_Load()窗体事件中加代码
Private Sub Form_Load()
Dim txtSQL As String
Dim mrc1 As ADODB.Recordset
Dim MsgText As String
txtSQL = "INSERT INTO 部门考勤台帐(考勤时间,所在部门)" & "SELECT distinct 考勤时间,所在部门 FROM 考勤台帐 "
Set mrc1 = ExecuteSQL(txtSQL, MsgText)
end sub
激活窗体时自动插入值
但是当每次激活时,它自动插入不同的值,但多次激活时,就产生重复的值了
考勤时间 所在部门 应出勤人数 应出勤天数 实出勤天数 ...(省略)
2006-1 人事部 NULL NULL NULL
2006-1 产品部 NULL NULL NULL
2006-1 人事部 NULL NULL NULL
2006-1 产品部 NULL NULL NULL
2006-1 人事部 NULL NULL NULL
2006-1 产品部 NULL NULL NULL
....... ..... .... .... ....
怎么解决这个问题,我每次激活只想把最新的值添加进去,不想添加已经插入的值,请高手指点一下
问题点数:20、回复次数:6Top
1 楼ExeMan(愚公移山(笨)--精卫填海(傻))回复于 2006-05-02 14:40:16 得分 0
txtSQL = "INSERT INTO 部门考勤台帐(考勤时间,所在部门)" & "SELECT DISTINCT 考勤时间,所在部门 FROM 考勤台帐"Top
2 楼fyyfly(へ飛豬夢へ)回复于 2006-05-02 16:56:31 得分 0
晕,我用的就是这个语句啊
那只能在一次激活是有效,我问题是,我可能会多次激活窗体事件啊,这样就出现重复值了,怎么才能判断已经存在的值?Top
3 楼of123()回复于 2006-05-02 17:25:03 得分 0
这样:
你在表b中建立一个唯一索引,索引中加入考勤时间、所在部门字段。
并且,在你的插入语句加上 On Error Resume Next。Top
4 楼fyyfly(へ飛豬夢へ)回复于 2006-05-06 10:06:34 得分 0
我按照你的方法试了,但是还是只能成功一次,第二次插入的值虽然是不同的,但是和第一次的还是一样的.......
考勤时间 所在部门 应出勤人数 应出勤天数 实出勤天数 ...(省略)
2006-1 人事部 NULL NULL NULL
2006-1 产品部 NULL NULL NULL
2006-1 人事部 NULL NULL NULL
2006-1 产品部 NULL NULL NULL
2006-1 人事部 NULL NULL NULL
2006-1 产品部 NULL NULL NULLTop
5 楼fyyfly(へ飛豬夢へ)回复于 2006-05-07 09:47:15 得分 0
高手在吗?请指点一下Top
6 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2006-05-07 14:01:44 得分 0
你的数据设置 和操作上本身就有问题
我不知道你怎么判断一样的纪录 (时间的精度(天 ,小时,分钟,秒))
我感觉你是做考勤
考勤应该这样
部门考勤台帐表
自动编号 ,主见(一般是用户id),是上班还是下班(这个要看你的时间段设置看现在的时间应该是上班还是下班),时间()
操作:
先判断当前时间是属于上班还是属于下班 上班的话 以最前时间为准 下班以最后时间为准 然后 看有没有纪录 有记录就根据上面的条件决定是插入还是更新 然后操作
Top




