VBA, MS Access MS Access в примерах

Знак Зодиака (номер или название) по дате рождения

Public Function ZodiacSignID(vBDDate) As Variant
' Номер знака зодиака персонажа по дате рождения
' -------------------------------------------------------------------------------------------------/
' Даты ("правельные"): https://www.alltime.ru/blog/?page=post&blog=watchblog&post_id=389
' -------------------------------------------------------------------------------------------------/
' Тестирование:
'      ?ZodiacSignID(#07/23/1769#)
' -------------------------------------------------------------------------------------------------/
    Select Case CInt(Format(vBDDate, "mmdd"))
        Case 321 To 420:    ZodiacSignID = 1   ' Oвен (21 марта – 20 апреля)
        Case 421 To 520:    ZodiacSignID = 2   ' Телец (21 апреля – 20 мая)
        Case 521 To 621:    ZodiacSignID = 3   ' Близнецы (21 мая – 21 июня)
        Case 622 To 722:    ZodiacSignID = 4   ' Рак (22 июня – 22 июля)
        Case 723 To 823:    ZodiacSignID = 5   ' Лев (23 июля – 23 августа)
        Case 824 To 923:    ZodiacSignID = 6   ' Дева (24 августа – 23 сентября)
        Case 924 To 1023:   ZodiacSignID = 7   ' Весы (24 сентября – 23 октября)
        Case 1024 To 1122:  ZodiacSignID = 8   ' Скорпион (24 октября – 22 ноября)
        Case 1123 To 1221:  ZodiacSignID = 9   ' Стрелец (23 ноября – 21 декабря)
        Case 1222 To 1231:  ZodiacSignID = 10  ' Козерог (22 декабря – 20 января)
        Case 101 To 120:    ZodiacSignID = 10  ' Козерог - проброс c 01 января по 20 января!
        Case 121 To 220:    ZodiacSignID = 11  ' Водолей (21 января – 20 февраля)
        Case 221 To 320:    ZodiacSignID = 12  ' Рыбы (21 февраля – 20 марта)
    End Select

ZodiacSignID_End:
    Exit Function

ZodiacSignID_Err:
    Err.Clear
    Resume ZodiacSignID_End
End Function


Название (после определения номера):

Public Function ZodiacSignName(vBDDate) As Variant
' Название знака зодиака - по дате рождения
Dim iSignNo As Integer
'   ?ZodiacSignName(#06/21/2020#)
    iSignNo = ZodiacSignID(vBDDate)
    ZodiacSignName = Choose(iSignNo, "Овен", "Телец", "Близнецы", "Рак", _
        "Лев", "Дева", "Весы", "Скорпион", "Стрелец", "Козерог", "Водолей", "Рыбы")
End Function


Иконка зодиака по номеру знака (для красоты)

Public Function ZodiacSignIcon(iSignID As Integer) As String
' Иконка знака зодиака
Dim lVal As Long
    ZodiacSignIcon = ChrW(&H2647 + iSignID)
End Function



Private Sub RowSourceForComboBox(ctrl As ComboBox)
'RowSource для ComboBox на 3 поля (со значками)
Dim iVal%, sRowSource$
    For iVal = 1 To 12
        sRowSource = sRowSource & ";" & _
            iVal & ";""" & Choose(iVal, "Овен", "Телец", "Близнецы", "Рак", _
                "Лев", "Дева", "Весы", "Скорпион", "Стрелец", "Козерог", "Водолей", "Рыбы") & """;" & _
                """" & ChrW(&H2647 + iVal) & """"
    Next
    'Debug.Print Mid(sRowSource, 2)
    ctrl.RowSource = Mid(sRowSource, 2)
End Sub

Назад ToTop
L.E. 26.11.2023
Рейтинг@Mail.ru