Option Compare Database
Dim ShiftID As Integer
Function hy_EffectShiftText(ctl As Control, ParamArray strText() As Variant)
'===============================================================================
'功能描述:切换显示任何多个用户输入的提示文字
'参数说明:ctl为文本或标签控件
'返回参数:hy_EffectShiftText Me.Text100, "先显示我", "再显示你","接着再显示我"
'使用注意:必须要在模块级声明变量ShiftID,而不能纳入函数内声明
'创建日期;2008-03-19
'===============================================================================
On Error Resume Next
ShiftID = ShiftID + 1 '时间变换一次则ShiftID自动加1
If ShiftID > UBound(strText()) Then '如果ShiftID大于数组变量strText()的个数则重置为0
ShiftID = 0
End If
If TypeOf ctl Is Label Then '根据不同的控件类型不文本赋给控件或其标题
ctl.Caption = strText(ShiftID)
ElseIf TypeOf ctl Is TextBox Then
ctl = strText(ShiftID)
End If
End Function
你通用页脚中看到你用到这个功能,但是发现你写的非常复杂,所以我就简化了一下。作者: andymark 时间: 2008-3-20 10:08
收藏先[:12]作者: hunrybecky 时间: 2008-3-20 14:43
咱家是猫给出的另一种解决方案
Function hy_EffectShiftTextOne(ctl As Control, strSplitText As String, strDelimiter As String)
'===============================================================================
'功能描述:在指定控件中交替切换显示任何多个用户输入的提示文字
'参数说明:ctl为文本或标签控件;strSplitText为多个组合文本,组合的分割符号可以使用strDelimiter来指定,一般建议用";"
'使用范例:hy_EffectShiftText Me.Text100, "先显示我;再显示你;接着再显示我",";"
'使用注意:必须要在模块级声明变量ShiftID,而不能纳入函数内声明
'相关调用:hy_CountInStr计算字符出现的个数
'函数参考:咱家是猫
'创建日期;2008-03-19
'===============================================================================
On Error Resume Next
ShiftID = ShiftID + 1 '时间变换一次则ShiftID自动加1
If ShiftID > hy_CountInStr(strSplitText, strDelimiter) Then '如果ShiftID大于分割符的个数则重置为0
ShiftID = 0
End If
If TypeOf ctl Is Label Then '根据不同的控件类型不文本赋给控件或其标题
ctl.Caption = Split(strSplitText, strDelimiter, -1)(ShiftID)
ElseIf TypeOf ctl Is TextBox Then
ctl = Split(strSplitText, strDelimiter, -1)(ShiftID)
End If
End Function
猫的这个函数使用比较灵活,可以把表的记录读出来,然后赋给strSplitText变量。
另外这个函数中引用了另外一个函数。
Function hy_CountInStr(strAllString As String, strSpeString As String) As String
'===============================================================================
'功能描述:计算字符串中指定字符的个数
'参数说明:strAllString整个字符串;strSpeString需要搜索的字符串,可以为单字符,也可以为多字符
'返回参数:hy_EffectShiftText Me.Text100, "先显示我", "再显示你","接着再显示我"
'使用范例:hy_CountInStr("普通图书;社科图书;教辅图书;文学图书;古籍图书;儿童图书","图书")
'函数参考:http://www.huzf.com/article.asp?id=138
'创建日期;2008-03-20
'===============================================================================
Dim i As Integer, j As Integer
For i = 1 To Len(strAllString)
If Mid(strAllString, i, Len(strSpeString)) = strSpeString Then
j = j + 1
End If
Next i
hy_CountInStr = j
End Function