CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  数据库(包含打印,安装,报表)

不同表之间数据插入问题

楼主fyyfly(へ飛豬夢へ)2006-05-01 13:57:57 在 VB / 数据库(包含打印,安装,报表) 提问

表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

相关问题

关键词

得分解答快速导航

  • 帖主:fyyfly

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo