Office中国论坛/Access中国论坛

标题: 怎样根据字段“隶属单位”删除重复的记录,只保留重复记录中的一个 [打印本页]

作者: 白河寒秋    时间: 2006-10-15 16:17
标题: 怎样根据字段“隶属单位”删除重复的记录,只保留重复记录中的一个
[attach]20915[/attach]
在论坛上找了2天也没有搞好,用SQL查询好象要很多步逐,听一些朋友说要写代码,可是 我不会,请各位大虾帮忙了!乞求中
作者: 浩雨    时间: 2006-10-15 16:42
你的表没有按关系数据的要求来建立。如果正确建表,不会有你所提的问题了。参阅:http://www.office-cn.net/forum.php?mod=viewthread&tid=46720&replyID=&skin=1

供参考:[attach]20917[/attach]
Access是面向广大用户而设计的应用程序,它不要求用户懂得很多编程技术和SQL语句。只要我们把表和查询真正弄懂了,按Access的要求建立数据库,就不会出现莫名其妙问题的。不要想得太复杂了。

[此贴子已经被作者于2006-10-15 9:41:39编辑过]


作者: 白河寒秋    时间: 2006-10-16 00:03
这个是从EXCEL中导进来的,是一个同事为工作方便提出的问题,解决不了要丢人的啦
作者: wuaza    时间: 2006-10-16 00:55
建一个删除查询:

delete * FROM NUserInf where id not in (select min(id) from NUserInf group by 隶属单位)
作者: 一点通    时间: 2006-10-16 04:55
这可能是先天不足引起的问题,但可以用后天补足,就是在查询中选择唯一值就可以了,管它有多少个重复
作者: 白河寒秋    时间: 2006-10-16 07:35
还是硬着头皮写了一段代码,终于解决了问题,不敢独享,发出来给大家指点了!

Sub del()
Dim Rs As New ADODB.Recordset
Rs.Open "select * from a", CurrentProject.Connection, adOpenDynamic, adLockOptimistic  'a为我要删除的有重复记录的表,先对a表做一些处理:"隶属单位"字段按生或者降序排列,这样,相同的记录都是按顺序排列了,

Dim del1As String '定义一个字符窜变量,存放"隶属单位"字段值,用他和当前记录做比较,值相同则删除当前记录,不同则将当前记录赋值给字符变量DEL1.
  Rs.MoveFirst
    del1 = Rs.Fields(5).Value'这里可以优化,将第一条记录的"隶属单位"值赋给变量,"隶属单位"在表的第6列上,从0开始数的,Rs.Fields(5).Value
   Do While Not Rs.EOF
             Rs.MoveNext
   Debug.Print del1
   If Rs.Fields(5).Value = del1 Then
     
            Rs.Delete 'adAffectCurrent
  Else
           del1 = Rs.Fields(5).Value
    End If
       Loop
Set Rs = Nothing

End Sub
作者: 白河寒秋    时间: 2006-10-16 07:47
在操作前要取消关键字,否则,记录按关键字顺序来
作者: 浩雨    时间: 2006-10-17 17:17
[attach]20950[/attach]

作者: 白河寒秋    时间: 2006-10-17 18:58
谢谢,你的更精彩!
作者: 浩雨    时间: 2006-10-17 19:21
[em46]
作者: 婚前婚后88    时间: 2006-10-20 02:13

作者: jayhell    时间: 2006-11-7 22:37
我要下载来看看
作者: jayhell    时间: 2006-11-7 22:37
[em06][em06]要3帖啊。。。晕晕的
作者: jayhell    时间: 2006-11-7 22:38
[em04][em04][em04]再来一下。。。
作者: yuzaihe    时间: 2009-9-18 10:02
正在学习
作者: yuzaihe    时间: 2009-9-18 10:03
好难啊




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