表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  
   .......    .....      ....          ....       ....   怎么解决这个问题,我每次激活只想把最新的值添加进去,不想添加已经插入的值,请高手指点一下
   

解决方案 »

  1.   

    txtSQL = "INSERT INTO 部门考勤台帐(考勤时间,所在部门)" & "SELECT DISTINCT 考勤时间,所在部门 FROM 考勤台帐"
      

  2.   

    这样:
    你在表b中建立一个唯一索引,索引中加入考勤时间、所在部门字段。
    并且,在你的插入语句加上 On Error Resume Next。
      

  3.   

    我按照你的方法试了,但是还是只能成功一次,第二次插入的值虽然是不同的,但是和第一次的还是一样的.......
      考勤时间  所在部门  应出勤人数   应出勤天数  实出勤天数  ...(省略)
       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