Жиынтық элементтерін өңдеу. Жиынтық элементтерін өңдеу үшін, тәртіп ретінде арналған For Each...Next операторы қолданылады. Оның синтаксисі ретінде:
For Each элемент In жиынтық оператор Next жиынтықтың әрбір элементі цикл орындалу үшін (индекстердің өсуіне қарай) блок операторы қолданылады. Аталған циклды орындау үшін шектеулер берілген, атап айтсақ, әрбір элемент, жиынтыққа жатады. Міндетті түрде Variant типін қолдануы тиіс (мысалы, ауыспалы, элемент ретінде процедураның басында тапсырыссыз сипатталады):
Dim Birthday For Each Birthday In colBirthday If Birthday = #l/l/2000# Then Beep Next Жоғарыда келтірілген командалар даталар арасында #1 /1/2000#, colBirthday жиынтығында бар ма екендігін тексереді. Егер ол дата табылса, онда Веер операторы арқылы дауыс береді. Берілген дата Birthday ауыспалысына алынады.
Мысалы 2.1. Жиынтық арқылы жұмысшылардың туылған күні, айы және олардың аты – жөнін енгізу. Берілген аты – жөні бойынша жұмысшылардың туылған күнін анықтау.
Шешуі. Жиынтық ретінде colBirthday қолданылып, қолданушының көмегімен жұмысшылардың аты – жөні мен туылған даталары енгізіледі. Мұндағы туылған датасы жиынтықтың міндетті элементтерінің бірі болып табылады. Ал, аты – жөні – кілттік мәнге ие болады және сол бойынша іздеу іске асады.
Мәндерді енгізу қосу пернесі арқылы іске асады. Демек тізімге енгізген сайын бір енгізілген аты – жөні қосылып отырады. Бірнеше мән енгізіліп болғаннан кейін іздеуге де болады. Бір аты – жөнді белгілеу арқылы ашылатын тізімде іздеу пернесін басу қажет. Нәтижесінде, оң жақ шетінде белгіленген жұмысшының туылған датасы көрсетіледі (14.1. сурет).
2.1 сурет. Иванов деген жұмысшының туылған датасын анықтау.
2.1. листинг жұмысшылардың туылған даталарын өңдеу барысында жиынтықты қолдану
Dim colBirthday As New Collection
Dim Surname As String
Dim Birthday As String
Option Explicit
Private Sub cmdAdd_Click()
Surname = txtSurname.Text
Birthday = txtBirthday.Text
' Жиынтыққа аты – жөн қосу
cboSurname.Addltem Surname
' Туылған датасын енгізу
' жиынтыққа кілттік мәнімен (аты – жөнімен)
colBirthday.Add Birthday, Surname
' тексттік жолдарды тазарту
txt Surname. Text = ""
txtBirthday.Text = ""
txtSurname.SetFocus
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdSearch_Click()
' Туылған датаны іздеу
' белгіленген аты – жөн бойынша
lblSearch. Caption = _
colBirthday(cboSurname.Text)
End Sub