设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 3270|回复: 15
打印 上一主题 下一主题

[其它] 怎样根据字段“隶属单位”删除重复的记录,只保留重复记录中的一个

[复制链接]
跳转到指定楼层
1#
发表于 2006-10-15 16:17:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在论坛上找了2天也没有搞好,用SQL查询好象要很多步逐,听一些朋友说要写代码,可是 我不会,请各位大虾帮忙了!乞求中

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-10-15 16:42:00 | 只看该作者
你的表没有按关系数据的要求来建立。如果正确建表,不会有你所提的问题了。参阅:http://www.office-cn.net/forum.php?mod=viewthread&tid=46720&replyID=&skin=1

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

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2006-10-16 00:03:00 | 只看该作者
这个是从EXCEL中导进来的,是一个同事为工作方便提出的问题,解决不了要丢人的啦
4#
发表于 2006-10-16 00:55:00 | 只看该作者
建一个删除查询:

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

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
7#
 楼主| 发表于 2006-10-16 07:47:00 | 只看该作者
在操作前要取消关键字,否则,记录按关键字顺序来
8#
发表于 2006-10-17 17:17:00 | 只看该作者

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
 楼主| 发表于 2006-10-17 18:58:00 | 只看该作者
谢谢,你的更精彩!
10#
发表于 2006-10-17 19:21:00 | 只看该作者
[em46]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-21 01:50 , Processed in 0.107546 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表