8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
1

Несколько событий, происходящих в одну и ту же дату

27.11.2014, 14:23. Показов 2339. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Sub Form_Activate()
 
Label2 = Date
 Dim Conn As New ADODB.Connection, RS As New ADODB.Recordset
Conn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\User\Downloads\VB примеры\Nap4\Event_db.accdb;Persist Security Info=False;"
RS.Open "SELECT Da_te, Event, Ti_me, Doctor, Phone, Location, Da_te2 FROM Event_tbl WHERE Da_te =#" + Format$(Date, "mm\/dd\/yyyy") + "#", Conn
If Not RS.EOF Then
 
  
  Label6 = RS("Da_te")
  Label7 = RS("Ti_me")
  Label8 = RS("Doctor")
  Label9 = RS("Phone")
  Label10 = RS("Location")
  Label5 = RS("Event")
   'Label61 = RS("Da_te")
  'Label71 = RS("Ti_me")
  'Label81 = RS("Doctor")
  'Label91 = RS("Phone")
  'Label101 = RS("Location")
  'Label51 = RS("Event")
Else
  Label5 = "Нет событий"
  
End If
RS.Close
Conn.Close
 
End Sub
Этот код позволяет мне при достижении сегодняшней даты выводить в Labels из БД записи, соответствующие этой дате, т.е. событие наступает при достижении сегодняшней даты.
Но таких событий, с сегодняшней датой, может быть несколько в БД (1 или 2 или 3).
Как сделать, чтобы при достижении сегодняшней даты, если есть несколько записей, выводить их в разные Labels, в соответствии с событием?
Например: Сегодня есть очередь к врачу - все записи выводятся в Labels связанные с этим событием, но сегодня есть очередь и к другому врачу - все записи должны выводиться в другие Labels связанные уже с этим событием и т.д.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2014, 14:23
Ответы с готовыми решениями:

Группировка событий в одну дату
Добрый день! Только начал изучать питон (а точнее pandas) и возник такой вопрос: я хочу посмотреть...

Как задать несколько событий на одну кнопку?
var i=0; var a; function show(){ var box=document.getElementById("box");...

Ввести одну дату и вывести дату следующего дня
Примеры: 1) Введите дату в программу, и она должна вывести вам дату следующего дня. (Например:...

Ввести одну дату и вывести дату следующего дня
Ограничиться условными операторами. Не использовать библиотеки time, datetime етц

27
11490 / 3777 / 678
Регистрация: 13.02.2009
Сообщений: 11,165
27.11.2014, 15:10 2
1. Делай запросы не только по дате, но и по врачу совпадение.
Запусти в цикле по списку врачей и результаты раскидывай по врачам.
Если в одтн день не один человек записан, то имеет смысл выводить в многосторчный контрол, например в список.
По идее должно быть и время указано на которое записан пациент.
Тогда в запросе надо сразу и отсортировать по времени
1
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
27.11.2014, 16:42  [ТС] 3
Alex77755,
Большое спасибо за ответ.
Но я хотел бы, чтобы при запуске программы происходил поиск в БД до первого совпадения даты(выдаются в Labels записи соответствующие первому совпадению), потом продолжение поиска по БД (выдаются в другие Labels записи соответствующие второму совпадению), потом продолжение поиска по БД и т.д.
0
11490 / 3777 / 678
Регистрация: 13.02.2009
Сообщений: 11,165
27.11.2014, 21:54 4
Какая-то чушь...
Запрос уже выбрал ВСЕ записи удовлетворяющие условию отбора!
Всё уже находится в RS!
Организуй цикл по RS. Типа:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
RS.MoveLast ' две строчки для подсчёта количества записей в таблице
RS.MoveFirst '
For J = 1 To RS.RecordCount ' с начала до конца таблицы
''' эти строки замени если хочешь выводить в лабелы----------------------------------------
.Rows = .Rows + 1 ' прибавить строчку в таблице
    For c = 0 To .Cols - 1
        .TextMatrix(J, c) = RS.Fields(c) ' заполнить значениями
    Next c
""""""---------------------------------------------------------------------
RS.MoveNext ' следующая строка в таблице базы
Next J 'следующая строка
Добавлено через 5 минут
Это из моей программы. Данные выводились в грид.
Больница. 5 терапевтов.
По 20 талончиков в день на приём.
По 6 полей на амбулаторного больного.
5*20*6 = 600! лабелов! Не перебор ли это?
в гриды хотя бы. Ну в списки. Хоть не так красиво...
1
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
27.11.2014, 22:21  [ТС] 5
Вложение 459519

Вложение 459520Alex77755,
База Данных и Форма:
Если не трудно, использовать мой код и вставить туда необходимое.
0
11490 / 3777 / 678
Регистрация: 13.02.2009
Сообщений: 11,165
28.11.2014, 08:24 6
Вложение не существует
1
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
28.11.2014, 14:26  [ТС] 7
[ATTACH]
Prolog
1
459748
[/ATTACH]
Миниатюры
Несколько событий, происходящих в одну и ту же дату  
0
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
28.11.2014, 14:27  [ТС] 8
[ATTACH]
C++ (Qt)
1
459749
[/ATTACH]
Миниатюры
Несколько событий, происходящих в одну и ту же дату  
0
11490 / 3777 / 678
Регистрация: 13.02.2009
Сообщений: 11,165
28.11.2014, 17:12 9
Не. По картикам не могу
Но судя по картинкам база данных кривая
Что за чудо в поле Event? и как оно согласуется со следующим полем?
И как будет меняться в 0 часов все записи в базе?
Ведь то что была очередью на завтра в 0 часов должно стать очередью на сегодня.
Кто пишет в базу относительные названия?
1
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
28.11.2014, 18:01  [ТС] 10
Alex77755,
1. В поле Event-это запись события, которое произойдет в дате записанной в поле Da_te.
Если системная дата компьютера совпадает с датой записанной в поле Da_te, тогда в Label5 на форме вставляется запись поля Event, Label6-Da_te, Label7-Ti_me, Label8-Doctor, Label9-Phone, Label10-Location.
Если системная дата компьютера не совпадает с датой записанной в поле Da_te, тогда в Label5 на форме пишется:
"Нет события"
2. В 0 часов записи БД не меняются т.к. поле Ti_me в текстовом формате и указывает на время посещения врача.
3. БД относительно даты в поле Da_te.
Программа запускается вместе с загрузкой компьютера каждый день.
Как можно переслать Вам файл с программой и базой данных?
0
11490 / 3777 / 678
Регистрация: 13.02.2009
Сообщений: 11,165
28.11.2014, 18:21 11
Здесь выложи архив

Добавлено через 3 минуты
Просто зачем делать не нужное поле в базе?
при выборке по дате будет надпись "Очередь на завтра" или "на сегодня" не зависимо от даты!
Неужели это не понятно?
1
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
28.11.2014, 19:55  [ТС] 12
Alex77755,
Эта программа прекрасно работает, если на какую то дату есть только одно событие. Все записи выводятся в соответствующие Labels, я же хочу, чтобы если есть два события в одну дату, то записи второго события выводились в другие Labels. Я все время пишу об этом.

Я исхожу из того, что событие (в этой программе) это совпадение системной даты компьютера и даты поля Da_te.
0
11490 / 3777 / 678
Регистрация: 13.02.2009
Сообщений: 11,165
28.11.2014, 20:32 13
Ну раз работает, то прекрасно!
Как обработать записи в рекорсете я показал
Но такую базу я себе точно создам!
Очередь к врачу сегодня01.11.2014
Очередь к врачу завтра02.11.2014
Очередь к врачу после завтра03.11.2014
Очередь к врачу после после завтра04.11.2014
Очередь к врачу после после после завтра05.11.2014

1
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
28.11.2014, 20:58  [ТС] 14
Alex77755,
Если Вам не трудно, вставить свой код в мой код потому, что я не программист и многого не знаю.
Мой код я также составил при помощи форумчан.
0
11490 / 3777 / 678
Регистрация: 13.02.2009
Сообщений: 11,165
29.11.2014, 00:35 15
По картинке не могу
Здесь выложи архив
1
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
29.11.2014, 10:08  [ТС] 16
Здесь находится программа и БД.
Вложения
Тип файла: rar Nap4.rar (597.5 Кб, 10 просмотров)
0
11490 / 3777 / 678
Регистрация: 13.02.2009
Сообщений: 11,165
29.11.2014, 14:10 17
Я исхожу из того, что
В базу не заносят относительные названия времени.
По тому что завтра поменяется на сегодня и потом на вчера.
Из базы выбираются записи по дате и они, в данном случае при условии совпвдения системной даты все будут на сегодня. Если хочешь организовать просмотр записей на завтра организуй запрос на завтрашнюю дату и соответственно где-то напиши "запись на завтра"
И ещё я исхожу из того, что
все записи должны выводиться в другие Labels
Сколько должно быть этьх лабелс?
Ты знаешь сколько записей удовлетворит дате?
Если хочешь в лабелс - тоже не очень большая проблема:
Организуй массивы лабелов и подгружай программно на каждую строку свой комплект лабелов, двигай их в нужное место.
Я показал примитивную выгрузку всех записей в один лабел.
Недостатки: нет прокрутки. Лучше было бы применить список или грид.
Вложения
Тип файла: rar Nap5.rar (598.5 Кб, 8 просмотров)
1
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
29.11.2014, 16:08  [ТС] 18
Alex77755,
Уважаемый Alex77755 большое спасибо за Вашу помощь, но мы все время уходим в сторону от заданного вопроса.
Я напишу последовательность работы программы (как я понимаю, может быть я не прав) итак:

1. Запуск программы.
2. Опрос программой, базы данных на предмет совпадения поля Da_te с системной датой компьютера.
2а.Если есть совпадение то в Label5 выводится запись поля event , в Label6 выводится запись поля Da_te,в Label7 выводится запись поля Ti_me, в Label8 выводится запись поля Doctor, в Label9 выводится запись поля Phone, в Label10 выводится запись поля Location. Итого 6 Labels.
3.(Теперь суть моего вопроса)Продолжается опрос программой, базы данных на предмет совпадения поля Da_te с системной датой компьютера.
4.Если есть совпадение то в Label51 выводится запись поля event и т.д. для Labels 61,71,81,91,101.

5.Если нет ни одного совпадения то в Label5 выводится:"Нет событий"

Мне необходимо выполнить 3 и 4 пункты этой последовательности, я не знаю , как это сделать.
0
11490 / 3777 / 678
Регистрация: 13.02.2009
Сообщений: 11,165
29.11.2014, 17:50 19
yurimo100,
Видимо вы не читаете внимательно сообщения!
Продолжается опрос программой
Запрос не продолжает опрос!!! и на может!!
Результатом работы запроса есть НАБОР ЗАПИСЕЙ, удовлетворяющих запросу!!
И дальнейшие действия сводятся к работе с этим набором!
Если есть совпадение то в Label51
А если совпадений 50?! Как и куда выводить?
Все остальные совпадения в 1 лабел?
Там их как? Дописывать или менять?

Добавлено через 4 минуты
Мне необходимо выполнить 3 и 4 пункты
Пункт 3 невыполним да и не нужно его выполнять (см. сообщения выше)
Пункт 4 читай сообщение
Сколько должно быть этих лабелс?
Ты знаешь сколько их Будет? Совпадений? 2?, 20?, 2000?
Сколько у тебя есть на форме лабелов?
Неужели это не понятно?
1
8 / 8 / 2
Регистрация: 09.02.2014
Сообщений: 124
29.11.2014, 18:12  [ТС] 20
Alex77755,
Считайте, что совпадений будет только два.
Может быть написать еще один запрос?
Этого достаточно,чтобы помочь?
Как бы Вы решили эту проблему, может быть, вообще, использовать другой путь?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2014, 18:12
Помогаю со студенческими работами здесь

Генерация разных событий на одну и ту же кнопку
Добрый день уважаемые форумчане. Нужна ваша помощь. Нужно сделать примерно такое. При клике на...

Электролиз (составить схему процессов, происходящих на электродах)
Составьте схему процессов, происходящих на электродах (катод-угольный, анод-цинковый), при...

Список событий при клике на дату компонент bitrix:news.calendar
Доброго времени суток! По замыслу на день может приходиться не одна новость, по этому при клике на...

Выполнения двух событий при нажатии на одну кнопку
Добрый день. Подскажите как реализовать кнопку "Добавить в корзину" как на ozon.ru (не реклама...

Несколько событий onload
добрый день всем. Помогите рачку с такой проблемой. Один сайт использует iframe'ы, ajax и т.д....

Несколько обработчиков событий
Ситуация следующая, имеется несколько обработчиков различных событий, когда события зажгутся не...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru