乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 140|回复: 8

删除组合/列表框中的重复项

[复制链接]

18

主题

55

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2006-10-30 23:47:24 | 显示全部楼层 |阅读模式
我根据数据库中字段中的值填充组合框。唯一的问题是数据库中存在重复项(必需的重复项)
如何只列出一次每个项目 i Then
        LB.RemoveItem i
      Else
        i = i + 1
      End If
    Loop
        LB.ListIndex = -1
End Function[/code]
回复

使用道具 举报

18

主题

222

帖子

51

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2006-10-31 03:40:51 | 显示全部楼层

这对我也适用
~'J'~
回复

使用道具 举报

6

主题

103

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2006-10-31 04:44:37 | 显示全部楼层
Hendie,我将其添加到VBA功能区域的文本下。 伟大的工具
看这里
回复

使用道具 举报

2

主题

37

帖子

2

银币

初来乍到

Rank: 1

铜币
45
发表于 2006-10-31 09:03:30 | 显示全部楼层
如果添加到combobox中的值来自数据库,最简单的解决方案是只查询数据库中的唯一值。你要注意在你使用的SQL语句中。您可能会在SQL语句中使用DISTINCT关键字。例如,如果您正在对一个包含州的组合框进行populate,并且您从中提取州的表包含您所有客户的地址,则该表将包含(除了其他内容之外)如下字段:
[Address1],[Address2],[City],[State],[Zip]
现在,您将用于从该列表中选择唯一州的SQL语句将是
“从您的表中选择不同的城市name ORDER BY City”
DISTINCT关键字根据select语句中的字段来决定什么是不同的。例如,如果您有一个这样的表
addr 1 city
1 Chicago
2 Chicago
并且您使用了SQL语句“SELECT DISTINCT * FROM Table1”或“SELECT DISTINCT addr1,city FROM Table1 ”,您将得到一个包含2行的记录集,每一行对应一个地址(因为1和Chicago的组合不同于2和Chicago的组合)。如果您使用语句“SELECT DISTINCT city from Table1 ”,您将得到一个包含一行的记录集,因为表中只有一个唯一的城市。
现在,由于您从数据库中提取的都是唯一数据,因此您无需编写任何自己的重复数据删除代码。这应该会更快,因为您没有向combobox添加数据,这些数据稍后才会从combobox中移除。
回复

使用道具 举报

2

主题

37

帖子

2

银币

初来乍到

Rank: 1

铜币
45
发表于 2006-10-31 11:39:10 | 显示全部楼层
此外,似乎列出的函数只有在对组合框中的数据进行排序时才起作用。
回复

使用道具 举报

6

主题

103

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2006-10-31 11:42:08 | 显示全部楼层
我同意,但是OP可能想在从这个盒子中移除副本之前看到所有的值?
~'J'~
回复

使用道具 举报

18

主题

55

帖子

1

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2006-10-31 11:48:53 | 显示全部楼层
完美的...
谢谢大家的帮助....
回复

使用道具 举报

6

主题

103

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
127
发表于 2006-10-31 12:32:22 | 显示全部楼层

是的,伙计
这里是一个寻求帮助的好地方
我可以秘密地告诉你…这里有太多聪明的程序员
(但不包括我)
快乐的计算
~'J'
回复

使用道具 举报

18

主题

222

帖子

51

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
260
发表于 2006-10-31 12:40:38 | 显示全部楼层
好吧,如果你想先对它进行排序,那么...
  1. Function LBsort(LB As ListBox)
  2. ' Sort the listbox
  3.     Dim LBvar As Variant
  4.     For i = 0 To LB.ListCount - 2
  5.         If LB.List(i) > LB.List(i + 1) Then
  6.             LBvar = LB.List(i)
  7.             LB.List(i) = LB.List(i + 1)
  8.             LB.List(i + 1) = LBvar
  9.             i = -1
  10.         End If
  11.     Next i
  12. End Function
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 20:37 , Processed in 0.303050 second(s), 71 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表