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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2009, 14:22   #1
vaga
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 12
По умолчанию выборка по дате

доброго времени суток
подскажите как правильно написать фильтр чтоб из таблицы можно было выбрать записи определной даты. через VBA
vaga вне форума Ответить с цитированием
Старый 10.09.2009, 18:33   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте vaga.
"написать фильтр" - конечно же можно, но чем Вас не устраивает фильтр в контекстном меню таблиц БД MS Access.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 11.09.2009, 01:32   #3
vaga
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 12
По умолчанию

не, у меня все управление БД осуществляется через VBA. мне так удобнее

я как не пытался указать дату все время получаю либо ошибку "не соответствует тип", либо просто ничего не выбирается. как правильно выглядит фильтр по дате?
vaga вне форума Ответить с цитированием
Старый 12.09.2009, 20:01   #4
Abrakadabra
Форумчанин
 
Регистрация: 26.04.2008
Сообщений: 487
По умолчанию

Цитата:
Сообщение от vaga Посмотреть сообщение
не, у меня все управление БД осуществляется через VBA. мне так удобнее
Если хотите VBA использовать, то лучше функцией. Рекордсетом, например.

Цитата:
Сообщение от vaga Посмотреть сообщение
я как не пытался указать дату все время получаю либо ошибку "не соответствует тип"
Покажите, что Вы писАли?
Abrakadabra вне форума Ответить с цитированием
Старый 13.09.2009, 18:08   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте vaga.
Вы очевидно ошиблись "управление БД осуществляется через VBA", без участия интерфейса (формы) не получится. Скорее всего используются формы, возможно "Табличного" вида.
Фильтр к полю формата Data набора записей как и условие отбора по полю Data источника записей (запроса), должен быть заключен в решетки.
select * from Table where Field1 = #1/2/2009#
у MS Access существует проблема с отображением формата даты, запросы с условиями: #1/13/2009# и #13/1/2009# будут отображать 13 января без возмущений. И это наводит на мысль о возможности шибки #1/12/2009# - 1 декабря или 12 января?
Решается проблема текстовым форматом, в источнике записей - запросе, создается поле отображающее дату в формате "yyyymmdd", MS Access позволяет помещать в тело запроса встроенные функции VBA:
select *, Format(Field1, "yyyymmdd") as F1 from Table
и по этому полю осуществляйте фильтрацию или выборку:
...where F1 = '20090112' - день
...where F1 Like '200901' & '*' - месяц
...where F1 Like '2009' & '*' - год
Удачи Вам.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 13.09.2009, 23:58   #6
vaga
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
Здравствуйте vaga.
Вы очевидно ошиблись "управление БД осуществляется через VBA", без участия интерфейса (формы) не получится. Скорее всего используются формы, возможно "Табличного" вида.
ну да. флорма, на форме элементы управления

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
select * from Table where Field1 = #1/2/2009#
я пробовал ставить решетки. какой эффект от этого был не помню, но не получалось. попробую еще раз

что интересно. мне надоело мучится решил сделать одну вешь: объявил переменную типа "дата", задал ей текущую дату (=Date) и сделал выборку по этой переменной. я подумал что акцесс сам себя же обмануть не может. я его недооценил . . . оказывается может. вообшем тоже ничего не получилось

ладно попробую еще раз учитывая ваши советы. надеюсь они мне помогут. спасибо!
vaga вне форума Ответить с цитированием
Старый 17.09.2009, 13:44   #7
vaga
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 12
По умолчанию

Цитата:
Field1 = #1/2/2009#
вот так работает, если указать дату непосредственно в коде. а если мне надо вводить дату в поле ввода?
к примеру я состовляю такое условие
Код:
WHERE lDate=#" & поле43 & "#"
и задаю этому полю маску ввода "краткий формат даты". не работает. почему у меня не получается задать маску ввода самостоятельно? я делаю маску "00/00/0000", а акцес сам исправляет на "00.00.0000".
vaga вне форума Ответить с цитированием
Старый 19.09.2009, 00:30   #8
vaga
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 12
По умолчанию

сделал вот так
Код:
dt = Format(dt, "mm/dd/yyyy")
Список34.RowSource = "SELECT lDate,lTime,lzID FROM group1 WHERE lDate=#" & Replace(CStr(dt), ".", "/") & "#"
незнаю глупо/не глупо зато работает! может кому пригодится . . .
vaga вне форума Ответить с цитированием
Старый 19.09.2009, 10:13   #9
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте vaga.
Вы уже оценили специфичность работы с форматом Data в MS Access о котором я упоминал. SQL сервер понимает обращение к дате в формате "yyyymmdd", для MS Access, приемлем такой вариант:
...WHERE Format(lDate, "yyyymmdd")='" + Format(поле43, "yyyymmdd") + "'"
об этом тоже написано выше.
Евгений.

Последний раз редактировалось Teslenko_EA; 19.09.2009 в 10:15.
Teslenko_EA вне форума Ответить с цитированием
Старый 29.09.2009, 22:27   #10
новый образ
 
Регистрация: 22.11.2008
Сообщений: 3
По умолчанию

Teslenko_EA скажите, а как можно реализовать ввод времени через Inputbox? ну вот к примеру ввожу "10,30" и он программа бы понимала что 10 - часы 30 минуты в 24х часовом формате?
новый образ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка из БД ИВАНьКа Общие вопросы C/C++ 4 21.08.2009 10:02
Выборка массивов! Sasuke-sama Общие вопросы C/C++ 10 30.05.2009 16:44
выборка из БД xvipx Microsoft Office Excel 13 30.01.2009 12:43
выборка Ser_gl Microsoft Office Excel 1 24.08.2007 20:49
Выборка John_chek БД в Delphi 10 27.06.2007 08:43