Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Изменение данных (по параметру)

Читайте также:
  1. A) работает со всеми перечисленными форматами данных
  2. A)можно изменить тип диаграммы, ряд данных, параметры диаграммы и т. д.
  3. ABC-анализ данных о поставщиках
  4. I. ПОЛОЖЕНИЕ О СИСТЕМЕ КАТАЛОГОВ, КАРТОТЕК И БАЗ ДАННЫХ ГОСУДАРСТВЕННОЙ БИБЛИОТЕКИ ЮГРЫ
  5. I.5.3. Подготовка данных для задачи линейного программирования.
  6. I.5.7. Mодификация (изменение) данных задачи.
  7. NURBS: Изменение Весов

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 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Сортировка (по выбранному параметру)| Исследование формы и спектра сложных гармонических сигналов.

mybiblioteka.su - 2015-2024 год. (0.016 сек.)