组合框多选示例-再加一个提示-林
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


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

发表时间:2019/8/30 11:32:10 评论(0) 浏览(5723)  评论 | 加入收藏 | 复制
   
摘 要:组合框多选示例
正 文:

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

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群(群号:198465573)
 
 相关文章
组合框多选示例  【宏鹏  2012/11/17】
Access组合框多选查询,今天教大家学习一个Access强大的组...  【宏鹏  2013/5/8】
按选定字段组合框多选查询示例  【网行者  2016/8/4】
Access文物古籍组合框多选查询01版  【张义成  2016/8/31】
Access文物古籍组合框多选查询02版  【张义成  2016/9/7】
组合框多选打印示例  【 123  2018/4/7】
常见问答
技术分类
相关资源
文章搜索
关于作者


文章分类

文章存档

友情链接