Читайте также:
|
|
1. Заполнение формы и результат:
3.5.1. Листинг
'====================================================================================
' Изменяет сведения о наличии билетов на поезд с заданным номером:
'====================================================================================
Private Sub CommandButton6_Click ()
'--------ОПИСАНИЕ ВНУТРЕННИХ ПЕРЕМЕННЫХ----------
Dim train_id As String ' Номер поезда
Dim tic_coupe As Integer ' Количество билетов в купе
Dim tic_reserve As Integer ' Количество билетов в плацкарт
Dim i As Integer ' Счетчики для циклов
'------------СБОР ДАННЫХ С ИНТЕРФЕЙСА------------
train_id = TextBox18.Value
' Количество билетов купе - отслеживаем возможные ошибки при вводе:
On Error GoTo m_error_9
tic_coupe = TextBox19.Value
' Количество билетов плацкарт - отслеживаем возможные ошибки при вводе:
On Error GoTo m_error_10
tic_reserve = TextBox20.Value
'------------ПОИСК ИНФОРМАЦИИ О ПОЕЗДЕ-----------
i = 0
work = "" ' Рабочая переменная
Do
i = i + 1 ' Считаем очередную строку
work = Лист1.Cells ( i, 1). Value ' Считываем строку
If ( work = train_id ) Then ' Если номер поезда совпал...
Лист1.Cells ( i, 6). Value = tic_coupe
Лист1.Cells ( i, 7). Value = tic_reserve
Exit Do
End If
If ( work = "" ) Then
GoTo m_error_11
End If
Loop Until ( False )
GoTo m_success
'------БЛОК ОБРАБОТКИ ВНЕШТАТНЫХ СИТУАЦИЙ--------
m_error_9:
MsgBox "Ошибка при вводе КОЛИЧЕСТВА БИЛЕТОВ(КУПЕ)!"
Exit Sub
m_error_10:
MsgBox "Ошибка при вводе КОЛИЧЕСТВА БИЛЕТОВ(ПЛАЦКАРТ)!"
Exit Sub
m_error_11:
MsgBox "Информация о поезде не найдена!"
Exit Sub
'----ДИАГНОСТИКА УСПЕШНОГО ВЫПОЛНЕНИЯ ЗАДАЧИ-----
m_success:
MsgBox "Информация о билетах на поезд № " & train_id & " успешно изменена (строка № " & i & ")"
End Sub
Удаление записей (по параметру)
1. Заполнение формы:
Листинг
'====================================================================================
' Удаление записей о поездах, которые следуют до заданной станции:
'====================================================================================
Private Sub CommandButton7_Click ()
'--------ОПИСАНИЕ ВНУТРЕННИХ ПЕРЕМЕННЫХ----------
Dim Trips () As Trip_inf ' массив структур с данными о каждом рейсе
Dim destination As String ' Станция назначения
Dim i, j As Integer ' Счетчики для циклов
Dim work As String ' рабочая строка
'-------ЗАНОСИМ ИНФОРМАЦИЮ В ПЕРЕМЕННЫЕ----------
i = 0 ' количество записей
Do '(нужно определить сколько всего строк)
i = i + 1 ' Считаем очередную строку
work = Лист1.Cells ( i, 1). Value ' Считываем строку
If ( work = "" ) Then ' Если она пустая...
Exit Do '...то записей больше нет
End If
Loop Until ( False )
' Фактически, все записи из таблицы с рейсами мы переносим в массив,
' состоящий из структур:
ReDim Trips ( i - 3) ' Изменяем размерность массива
For j = 0 To i - 3 ' Считываем все данные в массив
Trips ( j ). train_id = Лист1.Cells ( j + 2, 1)
Trips ( j ). destination = Лист1.Cells ( j + 2, 2)
Trips ( j ). start_date = Лист1.Cells ( j + 2, 3)
Trips ( j ). st_time = Лист1.Cells ( j + 2, 4)
Trips ( j ). fin_time = Лист1.Cells ( j + 2, 5)
Trips ( j ). tic_coupe = CStr ( Лист1.Cells ( j + 2, 6))
Trips ( j ). tic_reserve = CStr ( Лист1.Cells ( j + 2, 7))
Next
'------------СБОР ДАННЫХ С ИНТЕРФЕЙСА------------
destination = TextBox21.Value
'------ПОИСК ИНФОРМАЦИИ О ПОЕЗДЕ (В МАССИВЕ)-----
For i = 1 To UBound ( Trips )
' Если станции назначения совпадают, то удаляем запись:
If ( Trips ( i ). destination = destination ) Then
Trips ( i ). train_id = ""
Trips ( i ). destination = ""
End If
Next i
'----ДИАГНОСТИКА УСПЕШНОГО ВЫПОЛНЕНИЯ ЗАДАЧИ-----
Worksheets ( "Лист1" ). Cells.ClearContents ' Очистка листа №1
' Заполняем шапку таблицы:
Лист1.Cells (1, 1). Value = "Номер поезда"
Лист1.Cells (1, 2). Value = "Станция назначения"
Лист1.Cells (1, 3). Value = "Дата отправления"
Лист1.Cells (1, 4). Value = "Время отправления"
Лист1.Cells (1, 5). Value = "Время прибытия"
Лист1.Cells (1, 6). Value = "Мест в купе"
Лист1.Cells (1, 7). Value = "Мест в плацкарте"
i = 0
j = 0
For i = 0 To UBound ( Trips )
' Если строка в массиве пустая, то не отображаем ее на Лист1:
If ( Trips ( i ). destination = "" ) Then
GoTo m_empty
End If
' Вывод строк на Лист1:
Лист1.Cells ( j + 2, 1). Value = Trips ( i ). train_id
Лист1.Cells ( j + 2, 2). Value = Trips ( i ). destination
Лист1.Cells ( j + 2, 3). Value = Trips ( i ). start_date
Лист1.Cells ( j + 2, 4). Value = Trips ( i ). st_time
Лист1.Cells ( j + 2, 5). Value = Trips ( i ). fin_time
Лист1.Cells ( j + 2, 6). Value = Trips ( i ). tic_coupe
Лист1.Cells ( j + 2, 7). Value = Trips ( i ). tic_reserve
j = j + 1
m_empty:
Next i
End Sub
Дата добавления: 2015-10-29; просмотров: 113 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Сортировка (по выбранному параметру) | | | Исследование формы и спектра сложных гармонических сигналов. |