Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

组合框多选示例-再加一个提示

时 间:2019-08-30 11:32:10
作 者:   ID:149  城市:温州
摘 要:组合框多选示例
正 文:

在 宏鹏 同志的基础上加了一个提示已存在:

Option Compare Database
'MultComb和MultComb1的区别:MultComb重复先择会整个组合框选择的内容会清空,只留下重选的那个,MultComb1则会把前面选的重复的去掉,MultComb2则则提示已存在
Public Function MultComb()
Dim i As Integer, strList As String
    With Screen.ActiveControl
        For i = 1 To .ListCount
            strList = IIf(Nz(strList) = "", "", strList & ";") & .ItemData(i)       '如果字符串为空,那么就是下拉列表的第几项的值,否则就是字符串长度加上分号再加上下拉列表的第几项的值
        Next
        If InStr(1, .Tag, .Text) = 0 And InStr(1, strList, .Text) > 0 Then      'InStr([起始,] 接受搜索的字符串,被搜索的字符串[,匹配模式]),从 Start 位置开始,在 String1 中寻找 String2 ,如果没有找到,则返回0。如果 String1 或 String2 为Null,则返回Null,其他情况返回 String2 在 String1 中的起始位置。
            .value = IIf(Nz(.Tag) = "", "", .Tag & ";") & .Text
        End If
        .Tag = .Text
    End With
End Function

Public Function MultComb1()
    Dim i As Integer, strList As String
    With Screen.ActiveControl
        If Len(Nz(.value)) = 0 Then
            .Tag = ""
        Else
            '当选择的数据在组合框中已经存在时(数据在中间或末尾),把已存在的数据替换成空字符串
            If InStr(1, .Tag, "、" & .value) > 0 Then
                ' MsgBox "输入的数据已经存在"
                ' Exit Function
                .Tag = Replace(.Tag, "、" & .value, "")
            End If
            '当选择的数据在组合框中已经存在时(数据在开头),把已存在的数据替换成空字符串
            If InStr(1, .Tag, .value) > 0 Then
                .Tag = Replace(.Tag, .value, "")
            End If
            '写入选择的数据
            .Tag = .Tag & "、" & .value
            If Left$(.Tag, 1) = "、" Then
                .Tag = Mid$(.Tag, 2)
            End If
            .value = .Tag
        End If
    End With
End Function

Public Function MultComb2()
    Dim i As Integer, strList As String
    With Screen.ActiveControl
        If Len(Nz(.value)) = 0 Then
            .Tag = ""
        Else
            '当选择的数据在组合框中已经存在时提示已存在
            If InStr(1, .Tag, .value) > 0 Then
                .value = .Tag
                MsgBox "输入的数据已经存在"
                Exit Function
                .Tag = Replace(.Tag, ";" & .value, "")
            End If
            '写入选择的数据
            .Tag = .Tag & ";" & .value
            If Left$(.Tag, 1) = ";" Then
                .Tag = Mid$(.Tag, 2)
            End If
            .value = .Tag
        End If
    End With
End Function



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助