设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: Trynew
打印 上一主题 下一主题

[模块/函数] 可重复多选的组合框

[复制链接]
11#
发表于 2008-6-7 12:16:01 | 只看该作者
thanks
12#
发表于 2008-6-7 13:37:51 | 只看该作者

回复 1# 的帖子

好贴,向您学习!
13#
 楼主| 发表于 2008-6-10 09:09:42 | 只看该作者

回复 11# 的帖子

问:当我们不幸又误选了已经选过的条目,其他选中的消逝了,只保留了最后选中的。能否在误点击了已选项没有反应就好了
答:加上一个判断即可,见下面程序。不过这时从多选变为其中一个选项就要先清空内容才行。
Private Sub Combo0_AfterUpdate()
Dim i As Integer, strList As String
    With Combo0
MsgBox InStr(1, .Tag, .Text)
        For i = 0 To .ListCount
            strList = IIf(Nz(strList) = "", "", strList & ";") & .ItemData(i)
        Next
        If InStr(1, .Tag, .Text) = 0 And InStr(1, strList, .Text) > 0 Then
            .Value = IIf(Nz(.Tag) = "", "", .Tag & "、") & .Text
        End If
'加上判断已选及在列表内则内容不变即可
        If InStr(1, .Tag, .Text) > 0 And InStr(1, strList, .Text) > 0 Then
            .Value = IIf(Nz(.Text) = "", "", .Tag)
        End If
        .Tag = .Text
    End With
End Sub
14#
发表于 2008-6-10 10:53:31 | 只看该作者
如果利用这个组合框作为查询的参数,如何设计查询呢?

点击这里给我发消息

15#
发表于 2008-6-10 11:36:11 | 只看该作者
学习![:50] [:50]
16#
 楼主| 发表于 2008-6-10 11:41:35 | 只看该作者

回复:panjianhui

多选组合框作为查询的参数:

        用: "select * from tem where instr(1,'" & Combo0 & "',[字段2])>0"
也可以用split函数拆分后用or条件来查询,速度应该快点。
范例代码如下:
Private Sub 查询_Click()
    If Nz(Combo0, "") = "" Then
        Me.Child5.Form.RecordSource = "select * from tem"
    Else
        Me.Child5.Form.RecordSource = "select * from tem where instr(1,'" & Combo0 & "',[字段2])>0"
    End If
    Me.Child5.Form.Requery
End Sub

本帖子中包含更多资源

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

x

点击这里给我发消息

17#
发表于 2008-6-10 14:26:10 | 只看该作者
在大师们的手里是想怎么弄就怎么弄啊,佩服!不过还有一个小疑问:当我们在组合框中选中某项或某几项按查询,显示是正常的,但清除组合框内容后再重选,它就会将上一次选取的项也显示出来了。必须清除组合框内容后按一下[查询],再选才能正确显示。
18#
 楼主| 发表于 2008-6-11 08:57:46 | 只看该作者

回复 18# wang1950317的帖子

清除组合框内容后并未触发更新后事件,你把更新后事件(Private Sub Combo0_AfterUpdate()
)改为更改事件(Private Sub Combo0_Change())可以解决你这个问题。
虽然放在更改事件会有一点问题,如执行太频繁(自行输入内容时),但经过比较效果还是比放在更新后事件好些。
其实大家的一些提问和建议,就是我们灵感的源泉及动力,也多谢你的帖子:)

点击这里给我发消息

19#
发表于 2008-6-11 11:43:04 | 只看该作者
啊啊!Trynew老师太客气啦!只要不嫌我等无知太烦就好。谢谢你的耐心!谢谢!

点击这里给我发消息

20#
发表于 2008-6-11 11:48:32 | 只看该作者
越来越精彩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-10 07:54 , Processed in 0.111729 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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