![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Amaranth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.12.2007 Репутация: нет Всего: нет |
Здравствуйте.
Делаю БД дней рождений студентов. Начало уже положено, сделала таблицу Access, накидала на форму компоненты ADOConnection, ADODataSet, DataSource, ADOTable. Все вроде подключилось и работает. Подскажите, пожалуйста, как можно осуществить команду поиска студента, у которого дата рождения близжайшая К ТЕКУЩЕЙ ДАТЕ. |
|||
|
||||
baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
Amaranth, предположим, что таблица называется Table, а поле, хранящее день рождения - birthday
тогда надо выполнить запрос
и записи вернутся в порядке убывания близости для рождения. Сложности выражения ORDER BY не пугайтесь, там делается следующее: из birthday строится новая дата, содержащая текущий год и сравнивается с Now() - текущей датой. Если разница отрицательная (в текущем году ДР уже был), то сравнивается с датой ДР в следующем году. Такой запрос лучше всего сохранить в самой БД Access, тогда его можно будет просто вызывать по имени, типа
Это сообщение отредактировал(а) baldina - 15.12.2007, 22:26 |
||||
|
|||||
Amaranth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.12.2007 Репутация: нет Всего: нет |
baldina, спасибо, я попробовала сделать по Вашему совету, но мне пишется ошибка "Несоответствие типов данных в выражении условия отбора"
|
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
Гм. Это означает, что у вас поле, хранящее день рождения, имеет тип, отличный от Date (Дата).
Лучше всего в БД преобразовать поле к этому типу. Иначе все равно придется его преобразовывать к дате, но уже в запросе. Это плохо со всех точек зрения. |
|||
|
||||
Amaranth |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 9.12.2007 Репутация: нет Всего: нет |
Нет, поле имеет краткий формат даты, как и в системе, чтобы не возникало проблем... |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
странно. краткий формат, кстати, не тип, а внешнее представление, формат поля. тип должен быть "дата/время".
какую версию Access вы используете? а еще лучше - выложите здесь свой файл посмотреть. я сделал тестовую бд с упомянутым запросом, посмотрите Присоединённый файл ( Кол-во скачиваний: 10 ) ![]() |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
К примеру, в пределах трёх дней как-то так:
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |