Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 13:06   #11
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

Цитата:
Сообщение от ovt256 Посмотреть сообщение
Для дат существует оператор BETWEEN.
ПолеСДатой BETWEEN дата1 AND дата2
Если ПолеСДатой находится между дат 1 и 2, включая границы, то возвращается истина, иначе - ложь.
Для поиска сочетания букв в текстовом поле используйте оператор InStr(начальная позиция, чтоищем, гдеищем, каксравниваем).
с датой получилось.... с InStr-нет.Очевидно что это поле у меня с раскрывающимся списком.Попробую изменить вид поля.
Проблема с датой теперь такая: поиск не осуществляется, пока не введены границы дат.Получается что весь поиск привязан к значениям дат. Попытался прописать в поле "дата с" в значении по умолчании -01.01.2011 а в "дата по"-01.01.2012. не получилось Вопрос такой как сделать так, что бы параметры дат не мешали запросу?
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 01.06.2011, 08:23   #12
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Дату или диапазон дат для поиска всегда надо задавать полностью, чтобы аксесс смог преобразовать вводимый Вами текст в дату, ведь дата хранится в виде числа, целая часть которого содержит количество дней, истекших с 1 января 1900 года, а дробная - количество секунд или мсек (точно не помню) от начала суток.

Чтобы было удобнее работать с поиском, задайте типовые значения интервала, например вызовы за последние 30 дней. Для этого в событие для формы "Открытие" добавьте инициализацию полей для дат:
Me!ДатаС = Date() - 30
Me!ДатаПо = Date()

Или задайте значения по умолчанию для этих полей Date() - 30 иDate() соответственно.

На счет InStr: поле с раскрывающимся списком для поиска по части содержимого не совсем подходит. Замените эти поля на обычные текстовые.

И не стесняйтесь на каждом шаге выкладывать Вашу базу
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 03.06.2011, 00:39   #13
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

Цитата:
Сообщение от ovt256 Посмотреть сообщение
Дату или диапазон дат для поиска всегда надо задавать полностью, чтобы аксесс смог преобразовать вводимый Вами текст в дату, ведь дата хранится в виде числа, целая часть которого содержит количество дней, истекших с 1 января 1900 года, а дробная - количество секунд или мсек (точно не помню) от начала суток.

Чтобы было удобнее работать с поиском, задайте типовые значения интервала, например вызовы за последние 30 дней. Для этого в событие для формы "Открытие" добавьте инициализацию полей для дат:
Me!ДатаС = Date() - 30
Me!ДатаПо = Date()

Или задайте значения по умолчанию для этих полей Date() - 30 иDate() соответственно.

На счет InStr: поле с раскрывающимся списком для поиска по части содержимого не совсем подходит. Замените эти поля на обычные текстовые.

И не стесняйтесь на каждом шаге выкладывать Вашу базу
Аллилуя!!! Чесно говоря уже даже не сомневался что это заработает!!!!!!!!!!!!ovt256-респект и уважуха!!!!!!!! с удовольствием выкладываю результат!
С InStr ещё не пробовал.
Вложения
Тип файла: rar База данных21 - копия.rar (278.1 Кб, 52 просмотров)
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 03.06.2011, 09:45   #14
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Посмотрел Вашу базу. Динамика освоения Access потрясающая! Вот что значит писать программу для дела, а не курсовик какой-нибудь абстрактный, который сдал и забыл! МОЛОДЕЦ!

Вместо InStr попробуйте использовать оператор LIKE "%строкапоиска%"
Звездочка (*) или процент (%) означает любое количество символов или их отсутствие

Еще один совет. Я обратил внимание, что практически во всех таблицах у Вас присутствует в том или ином виде уникальный код записи (номер). Это правильно. А неправильно то, что Вы его не используете для связи таблиц. Вместо этого Вы в таблицы заносите строковые данные, причем повторяете данные в разных таблицах. Мало того, что это увеличивает размер самой БД, так еще и замедляет ее работу. Ведь компьютер быстрее сравнит два целых числа, чем две строки по 255 символов. Например, у Вас есть таблица врачи, где хранится, кроме всего прочего, фамилия врача. И в таблице вызовы так же есть поле Врач, содержащее фамилию.

Правильнее в таблице вызовы хранить не фамилию врача, а его код (паример, в поле ID_врача). Вы, наверное, спросите: а как тогда в запросе вызовы показать фамилию врача? Очень просто. Строите запрос на основе не одной таблицы, а двух:
Код:
SELECT * FROM врачи, вызовы WHERE врачи.врач = вызовы.ID_врача
Такой запрос выведет все поля из таблицы вызовы и все поля из таблицы врачи той пары записей, у которых совпадают коды врача.
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 04.06.2011, 00:36   #15
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
Злость

Правильнее в таблице вызовы хранить не фамилию врача, а его код (паример, в поле ID_врача). Вы, наверное, спросите: а как тогда в запросе вызовы показать фамилию врача? Очень просто. Строите запрос на основе не одной таблицы, а двух:
Код:
SELECT * FROM врачи, вызовы WHERE врачи.врач = вызовы.ID_врача
Такой запрос выведет все поля из таблицы вызовы и все поля из таблицы врачи той пары записей, у которых совпадают коды врача.[/QUOTE]

да...это правда! Сам не мог понять откуда в полной версии 69 мб? И почему в полной версии при том же количестве записей почти на 20 мб больше?Теперь понял.Похоже придётся переписывать
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 04.07.2011, 23:51   #16
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

В БД27 есть форма "предложенный запрос1"-считает повторы.Как сделать ссылку на эти вызовы?
Например: первая запись-3 повтора-(кнопка напротив)-нажали-3 -расширенная версия из таблицы "вызов"?
Такое вообще выполнимо???
Вложения
Тип файла: rar База данных27.rar (296.5 Кб, 19 просмотров)
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 05.07.2011, 06:58   #17
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Цитата:
Сообщение от dr03 Посмотреть сообщение
В БД27 есть форма "предложенный запрос1"-считает повторы.Как сделать ссылку на эти вызовы?
Например: первая запись-3 повтора-(кнопка напротив)-нажали-3 -расширенная версия из таблицы "вызов"?
Такое вообще выполнимо???
А то! Вот так, например:
Вложения
Тип файла: rar База данных27.rar (329.7 Кб, 21 просмотров)
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 06.07.2011, 23:53   #18
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
Хорошо

Цитата:
Сообщение от ovt256 Посмотреть сообщение
А то! Вот так, например:
Очуметь...да ведь это ж готовое решение!!!!
я не расчитаюсь
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 07.07.2011, 08:24   #19
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Цитата:
Сообщение от dr03 Посмотреть сообщение
я не расчитаюсь
Ну и чтоб совсем загнать Вас в долговую яму, еще вариант:
Вложения
Тип файла: rar База данных27.rar (329.4 Кб, 29 просмотров)
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 08.07.2011, 00:43   #20
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
Хорошо

Цитата:
Сообщение от ovt256 Посмотреть сообщение
Ну и чтоб совсем загнать Вас в долговую яму, еще вариант:
давайте...вгоняйте меня в долги
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Форма Jkeeee HTML и CSS 0 17.05.2011 22:16
форма 7742 C++ Builder 1 25.03.2011 21:53
Форма tgm Microsoft Office Excel 6 21.01.2011 10:39
форма Temka Общие вопросы Delphi 2 02.06.2009 18:16
Форма subsonic Общие вопросы Delphi 5 10.01.2008 11:18