Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889

Приложение для вокзала

02.11.2009, 21:37. Показов 2618. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. Такая задача стоит. нужно сделать приложение для вокзала (продажа билетов). Чтобы была возможность продажи, бронировании, возврата билетов, и справка о наличии свободных мест.
С VBA мало знаком, но вот немного почитал, покрути, повертел. В общем форму сделал, в ячейки нужные элементы записываю. Теперь вопрос: Как сделать так, чтобы при вводе в одну строку информации о билете, следующий ввод инфы проходил на следующей строке. НЕ могу понять. Пишет все в одну и ту же. Как задать диапазон? Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.11.2009, 21:37
Ответы с готовыми решениями:

Организовать базу данных для справочной службы вокзала
Организовать базу данных для справочной службы вокзала со следующей информацией: станция назначения; общее количество электричек, время...

Выбор решения для проекта! Приложение для Windows + приложение для Android или Web приложение?
Здравствуйте! Один мой знакомый, владелец мебельной фирмы, обратился ко мне с серьезным предложением. Ему необходимо разработать...

Модель кассы вокзала
В кассе вокзала через каждые 10+-3 мин появляются клиенты. На обслуживание клиентиа у кассира уходит от 5 до 15 мин. (распределение времени...

17
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
02.11.2009, 23:14
Для задания диапазона ячееек в VBA существует тип Range.
Например:
Visual Basic
1
2
3
dim range1 as range
set range1 = Range("A1:C10") 
range1(1,1).Value= 1 '(строка, столбец)
Range(row+1, col ).Value = value1 для записи в следующую строку.
1
0 / 0 / 0
Регистрация: 28.09.2009
Сообщений: 88
03.11.2009, 11:26
Может, проще скачать готовую работу по этой теме?
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
03.11.2009, 13:41  [ТС]
EducatedFool, проще то оно проще, но хочется все-таки самому в этом разобраться
0
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
03.11.2009, 13:52
Drongo, Вообщем то, если не с целью обучения, то думаю, что не очень целесообразно вообще использование Excel и VBA. Связка из например базы oracle и надстройки над базой, к примеру будет лучше.
1
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
03.11.2009, 13:55  [ТС]
Chipnddail, в этом все и дело, что для обучения))) если бы не для обучения, то я бы уже давным давно на дельфи это все написал))
а как все-таки такой вот код организовать...
у меня на форме 4 поля: дата, поезд, пункт назначения, стоимость.
когда я нажимаю на кнопку, то программа должна найти: есть ли такой маршрут уже или нет. Если есть, то программа только отнимает от кол-ва свободных мест такое количество, которое ввел я и все. Если же нету такого маршрута, то программа должна ввести новую строку.

Поезда уже известны. Их список у меня будет на форме в комбобоксе.
0
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
03.11.2009, 16:25
Ну так какая разница, что делфи, что VBA. Здесь выбор языка не так важен.
Мне кажется, что здесь важна именно система хранения информации о поездах, числе оставшихся билетов.
Все зависит от задачи..

Ведь,если поезда ходят регулярно 1 раз в день, билет можно заказать хоть на 1 год вперед, то получается, что тебе нужно хранить число оставшихся мест для 365 рейсов каждого поезда??!!
А если поезда ходят нерегулярно, то вообще без базы , по-моему не обойтись.

А почему для обучения ты взялся именно за такой проект????
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
03.11.2009, 18:48  [ТС]
Проект мне достался от препода.
Вот как я думал сделать.
Таблица.
5 столбцов.
1 - дата, 2 - Поезд(маршрут), 3 - Пункт назначения, 4 - Стоимость билета, 5 - свободные места.

Три формы.
1 - продажа билетов, 2 - возврат билета, 3 - справка о наличии свободных мест.

Например нужно продать билет на 25.11.2010. На первой форме все указывается, в таблице идет поиск по столбцам: дата, поезд. если есть совпадение, то тогда от количества свободных мест отнимается количество билетов, указанных на форме. Если совпадений нет, тогда в следующую свободную строку вписываются все данные. и т.д. Стоимость будет рассчитываться автоматически в зависимости от поезда. Еще можно добавить время отправления поезда, но я уже это потом сам по аналогии сделаю. Мне бы вот для начала так, как я предполагаю, а потом я уже "шлифану" до нужного результата...
0
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
03.11.2009, 20:17
Примерно так,
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Function sell() As Boolean
For Row = 1 To trainRange.Rows.Count
    If trainRange(Row, 1) = sellRange(1, 1) Then
    For col = 1 To sellRange.Columns.Count
        If trainRange(Row, col).Value <> sellRange(1, col).Value Then
            Exit For
        ElseIf col = sellRange.Columns.Count Then
            sell = True
            Exit Function
        End If
    Next
    End If
Next
End Function
1
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
03.11.2009, 20:24  [ТС]
Понял мало что из кода. Но все равно спасибо... как-нибудь выберусь из ситуации
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
07.11.2009, 21:38  [ТС]
Снова... Вот решил я немного литературки почитать. Почитал и немного понял...
С добавлением разобрался, про отнимание кол-ва билетов от уже существующего маршрута тоже (задание в постах №1 и №8)...
Вот код для одной кнопки:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub CommandButton5_Click()
For rowind = 2 To 50
   If DTPicker1.Value = Worksheets("общая").Cells(rowind, 1).Value And TextBox3.Value = Worksheets("общая").Cells(rowind, 2).Value And TextBox2.Value = Worksheets("общая").Cells(rowind, 3).Value Then
       Worksheets("общая").Cells(rowind, 4).Value = Worksheets("общая").Cells(rowind, 4).Value - TextBox4.Value
Exit For
   ElseIf Worksheets("общая").Cells(rowind, 1).Value = "" Then
        With Worksheets("Общая")
Cells(rowind, 1).Value = DTPicker1.Value
Cells(rowind, 2).Value = TextBox3.Value
Cells(rowind, 3).Value = TextBox2.Value
Cells(rowind, 4).Value = TextBox4.Value
        End With
Exit For
    End If
 
Next
End Sub
Теперь есть пара вопросов.
1.
Visual Basic
1
For rowind = 2 To 50
Как исправить текст, чтобы не задавать ограничения в количестве строк? Т.е. если будут заполнены 50 строк, то чтобы прога не выкидывала ошибку, а продолжала ввод.

2. На другом листе у меня будет список маршрутов в стобик. Как мне в комбобокс запихнуть все эти значения? Причем чтобы каждый раз при запуске формы он проверялся на случай добавления/удаления.
0
7 / 7 / 0
Регистрация: 30.10.2009
Сообщений: 28
07.11.2009, 22:07
Цитата Сообщение от Drongo Посмотреть сообщение
Приветствую. Такая задача стоит. нужно сделать приложение для вокзала (продажа билетов). Чтобы была возможность продажи, бронировании, возврата билетов, и справка о наличии свободных мест.
С VBA мало знаком, но вот немного почитал, покрути, повертел. В общем форму сделал, в ячейки нужные элементы записываю. Теперь вопрос: Как сделать так, чтобы при вводе в одну строку информации о билете, следующий ввод инфы проходил на следующей строке. НЕ могу понять. Пишет все в одну и ту же. Как задать диапазон? Спасибо.
Так а причем тут VBA, если сделать все в VBA то это будет не приложения. Для работы нужной вам программы нужно постоянно открытым держать Word или Excel что неудобно.
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
07.11.2009, 22:42  [ТС]
Читай внимательно тему.
Пост №6
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
08.11.2009, 23:06  [ТС]
Ну что? Никто не подскажет?
0
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
12.11.2009, 18:29  [ТС]
Ребята!!! срочно, горю... как в комбобокс закинуть строки со второго листа из столбца???
0
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
12.11.2009, 21:34
Drongo, тебе только разжевать и в рот положить???

Visual Basic
1
2
3
    For Each cell In ActiveWorkbook.Worksheets(2).Range("A1:A100").Cells
        Call UserForm1.ComboBox1.AddItem(cell.Value)
    Next
1
Админю немножко :)
126 / 115 / 25
Регистрация: 05.01.2009
Сообщений: 889
13.11.2009, 09:59  [ТС]
Chipnddail, что ты сразу наезжаешь???
Это я знаю как сделать. Из диапазона не проблема взять.. А вот как сделать, чтобы автоматически оно находило конец? мало ли будет больше 100 маршрутов...
0
134 / 79 / 6
Регистрация: 06.04.2009
Сообщений: 192
13.11.2009, 13:39
Пример заполнения списка (из моей похожей проги), при активации формы:

Visual Basic
1
2
3
4
  While Sheets("Списки").Cells(nRow, nColumn) <> ""
    lstModels.AddItem Sheets("Списки").Cells(nRow, nColumn)
    nRow = nRow + 1
  Wend
А ещё диапазон можно указать, например, так:

Visual Basic
1
  Range([P3], Range("P" & Rows.Count).End(xlUp)) ' Диапазон до последней строки
т.е. в Вашем случае будет выглядеть следующим образом:
Visual Basic
1
For Each cell In ActiveWorkbook.Worksheets(2).Range([A3], Range("A" & Rows.Count).End(xlUp)).Cells
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2009, 13:39
Помогаю со студенческими работами здесь

Разработать базу данных ЖД вокзала
база данных ЖД вокзала на Delphi 7. 5 таблиц и 5 связей. SQL. спасибо заранее!

Правильно ли спроектирована структура БД вокзала?
Всем привет. Проектирую базу данных онлайн табло ЖД вокзала. Правильно ли спроектировона структура БД?

Форма заказа билета в БД ж/д вокзала
Здравствуйте, возникли вопросы с построением кода заказа билета в бд жд вокзала. Данные берутся из двух таблиц. Пользователь заполняет...

Задание было, написать БД по билетам вокзала
Добрый день! Прошу совета! Задание было, написать БД по билетам вокзала. Не работает процедура покупки билета. Т.е. необходимо чтобы...

Сделать базу данных ЖД вокзала с 6-8 таблицами
Фантазии не хватает


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru