如何避免重复值

时间:2011-11-16 14:18:11

标签: vb6 listbox

当我从数据库中添加值时,列表框应该避免重复值。

例如

List1框

 Value

100
200'
300

从表中,当我添加相同的值001时,列表框应该避免该值。当我尝试添加400时,列表框应该允许添加。

4 个答案:

答案 0 :(得分:3)

创建列表框时,应使用字典存储所有这些值。

然后,您可以检查该值是否存在:

If Not dict.Exists(key) Then 
    dict.Add key, value
    listitem.Add key
End If 

有关详细信息,请参阅此主题:Does VBA have Dictionary Structure?

答案 1 :(得分:1)

不确定我是否理解您的问题,但我建议在数据库返回时限制值。如果不知道你的数据库是什么样的,我建议你查找DISTINCT并在你的查询中使用它来返回列表框的列表

答案 2 :(得分:1)

VB6 ListBox控件没有确定它是否已包含给定值的方法。您必须使用ListBox的List()和ListCount属性进行搜索。如果ListBox的Sorted = True,则可以使用二进制搜索模式;否则它必须是顺序搜索。

我假设您通过AddItem填充项目,而不是数据绑定(DataSource,DataField等)。如果您正在使用数据绑定,那么您将需要处理SQL,并且可能使用DISTINCT,正如jworrin所推荐的那样。

答案 3 :(得分:0)

为避免添加重复项,您需要检查列表中已有的每个条目。 您可以通过特定于域的方式解决此问题,但这取决于代码正在执行的操作。

但是... 要重申jworrin所说的内容,您应该重构数据库查询以仅获取要显示的数据。