Option Explicit Public kolichestvo As Integer Public i As Long Public j As Long Public k As Long Dim t As AEROFLOT Dim AEROFLOT(1 To 7) As AEROFLOT Dim arraySL(30) As String 'Описываем структуру AEROFLOT Private Type AEROFLOT Nomer As Integer Tip As String Punkt As String End Type Private Sub Command1_Click() kolichestvo = kolichestvo + 1 'Обработка ошибки If kolichestvo > 7 Then MsgBox "Колличество элементов должно равняться 7", vbCritical, "Ошибка" Exit Sub End If With AEROFLOT(kolichestvo) .Punkt = Text1.Text If Text1.Text = "" Then MsgBox " Введите пункт назначения", vbCritical, "Oшибка" Exit Sub End If .Tip = Text2.Text If Text2.Text = "" Then MsgBox " Введите тип самолёта", vbCritical, "Oшибка" Exit Sub End If .Nomer = Val(Text3.Text) If Text3.Text = "" Then MsgBox " Введите номер рейса", vbCritical, "Oшибка" Exit Sub End If End With List1.AddItem AEROFLOT(kolichestvo).Punkt List2.AddItem AEROFLOT(kolichestvo).Nomer List3.AddItem AEROFLOT(kolichestvo).Tip SortirovkaAlfavit Combo1.Clear 'Отсеиваем повторяющиеся типы On Error Resume Next For i = 1 To kolichestvo If AEROFLOT(i).Tip <> AEROFLOT(i + 1).Tip Then Combo1.AddItem AEROFLOT(i).Tip End If Next i End Sub Private Sub Combo1_Click() List4.Clear List5.Clear On Error Resume Next For i = 1 To kolichestvo If AEROFLOT(i).Tip = Combo1.Text Then List5.AddItem AEROFLOT(i).Nomer List4.AddItem AEROFLOT(i).Punkt End If Next i End Sub Private Sub Form_Load() arraySL(1) = "а" arraySL(2) = "б" arraySL(3) = "в" arraySL(4) = "г" arraySL(5) = "д" arraySL(6) = "е" arraySL(7) = "ё" arraySL(8) = "ж" arraySL(9) = "з" arraySL(10) = "и" arraySL(11) = "к" arraySL(12) = "л" arraySL(13) = "м" arraySL(14) = "н" arraySL(15) = "о" arraySL(16) = "п" arraySL(17) = "р" arraySL(18) = "с" arraySL(19) = "т" arraySL(20) = "у" arraySL(21) = "ф" arraySL(22) = "х" arraySL(23) = "ц" arraySL(24) = "ч" arraySL(25) = "ш" arraySL(26) = "щ" arraySL(27) = "ы" arraySL(28) = "э" arraySL(29) = "ю" arraySL(30) = "я" End Sub 'сортировка по алфавиту Sub SortirovkaAlfavit() i = 0 j = 1 k = 0 List1.Clear List2.Clear List3.Clear For k = 1 To 30 For i = 1 To kolichestvo If Mid(AEROFLOT(i).Punkt, 1, 1) = UCase(arraySL(k)) Then t.Punkt = AEROFLOT(j).Punkt t.Nomer = AEROFLOT(j).Nomer t.Tip = AEROFLOT(j).Tip AEROFLOT(j).Punkt = AEROFLOT(i).Punkt AEROFLOT(j).Nomer = AEROFLOT(i).Nomer AEROFLOT(j).Tip = AEROFLOT(i).Tip AEROFLOT(i).Punkt = t.Punkt AEROFLOT(i).Nomer = t.Nomer AEROFLOT(i).Tip = t.Tip j = j + 1 End If Next i Next k For i = 1 To kolichestvo List1.AddItem AEROFLOT(i).Punkt List2.AddItem AEROFLOT(i).Nomer List3.AddItem AEROFLOT(i).Tip Next i End Sub 'Преобразуем первый символ строки к верхнему регистру Private Sub Text1_LostFocus() Text1.Text = UCase(Mid(Text1.Text, 1, 1)) & Mid(Text1.Text, 2, Len(Text1.Text)) End Sub