Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запрос не даёт ответ на вопрос
 
 автор: час   (21.02.2012 в 11:07)   личное сообщение
 
 

Выбор из таблице по заданным датам. с....по.....

SELECT PRODUCTS_TBL.*
FROM PRODUCTS_TBL
WHERE (((PRODUCTS_TBL.DATE_OTK)>=FUN_DATE_FIRST() And (PRODUCTS_TBL.DATE_OTK)<=FUN_DATE_LAST()))
=======================================================================
Но дата в табле записывается у мну как дата, а у юзера как дата-время 20.02.2012 16:47:11
Получается у него не отображается инфа за 20.02.2012.
---------------------------------
Видимо потому, что 20.02.2012 16:47:11 > 20.02.2012

  Ответить  
 
 автор: ddi   (21.02.2012 в 11:09)   личное сообщение
 
 

select x
form y
where z between @data1 and @data2

  Ответить  
 
 автор: час   (21.02.2012 в 11:16)   личное сообщение
 
 

А что - between лучше, чем >= <= ?

  Ответить  
 
 автор: час   (21.02.2012 в 11:17)   личное сообщение
 
 

WHERE (((PRODUCTS_TBL.DATE_OTK) Between FUN_DATE_FIRST() And FUN_DATE_LAST()))
================================
нет нифига.

Надо дату в табле как то привести в соответствие с датой в коротком виде.

  Ответить  
 
 автор: kot_k_k   (21.02.2012 в 11:21)   личное сообщение
 
 

Format(Date, "mm\/dd\/yyyy")
или
Format(Date, "dd\/mm\/yyyy")

возможно опять косяки Акса с датами - проверь в каком виде ты получаешь из даты из своих функций
вариант в функции ты получаешь 01.10.2011 - при возврате самой функции 10/1/2011

  Ответить  
 
 автор: час   (21.02.2012 в 11:23)   личное сообщение
 
 

Спасибо....
чё та нихрена не понимаю - не помогает чему то...
====================================================

WHERE (((Format([PRODUCTS_TBL]![DATE_OTK],"dd\/mm\/yyyy")) Between FUN_DATE_FIRST() And FUN_DATE_LAST()))

  Ответить  
 
 автор: kot_k_k   (21.02.2012 в 11:36)   личное сообщение
 
 

WHERE (((Format([PRODUCTS_TBL]![DATE_OTK],"dd\/mm\/yyyy")) Between Format(FUN_DATE_FIRST(),"dd\/mm\/yyyy") And Format(FUN_DATE_LAST(),"dd\/mm\/yyyy")))

попробуй вот так

  Ответить  
 
 автор: ddi   (21.02.2012 в 11:21)   личное сообщение
 
 

ну вот и ты ответил на вапрос

  Ответить  
 
 автор: ddi   (21.02.2012 в 11:26)   личное сообщение
 
 

select x
form y
where z between @data1 and @data2
у меня @data1 и @data2 параметры
в акксее [data1] [data2]

  Ответить  
 
 автор: час   (21.02.2012 в 11:35)   личное сообщение
 
 

и у меня тоже.

  Ответить  
 
 автор: shanemac51   (21.02.2012 в 11:36)   личное сообщение
 
 



чтобы не зависеть от минут
WHERE (((Format([PRODUCTS_TBL]![DATE_OTK],"dd\/mm\/yyyy"))
 Between FUN_DATE_FIRST() And FUN_DATE_LAST()+1))

  Ответить  
 
 автор: час   (21.02.2012 в 11:40)   личное сообщение
 
 

Спасибо....
Вобщем привёл и то и другое к общему формату - и всё пучком стало.

WHERE (((FormatSpDate([DATE_OTK]))>=FormatSpDate(FUN_DATE_FIRST()) And (FormatSpDate([DATE_OTK]))<=FormatSpDate(FUN_DATE_LAST())))

  Ответить  
 
 автор: ddi   (21.02.2012 в 11:42)   личное сообщение
 
 

public function par(str as string)
select case str
case "data1"
par = Format(дата из формы таблицы или ..., "mm\/dd\/yyyy")
case "data2"
par = Format(дата из формы таблицы или ..., "mm\/dd\/yyyy")
End Select"
select x form y
where z between par("data1") and par("data2")

  Ответить  
 
 автор: час   (21.02.2012 в 11:46)   личное сообщение
44 Кб.
 
 

Спасибо. - это та, с которой срисовывал.
DDI на паять!

  Ответить  
 
 автор: Дядя Федор   (21.02.2012 в 11:58)   личное сообщение
 
 

У меня объявлена глоб. константа
Const SQLDATE As String = "\#mm\/dd\/yyyy\#"
par = Format(дата из формы таблицы или ...,SQLDATE)
И помнить не надо эту жуткую конструкцию.
Можно также использовать замечательную ф-ю BuildCriteria:
strf = BuildCriteria("DataTabCal", dbDate, "between #" & dbegin & "# and #" & Dend & "#") & _
IIf(flvoskr, "", " AND [blnday] = true") -

Так же я объявляю и часто используемые строки
типа
Public Const S_vnim As String = "Внимание!"
Public Const S_error As String = "Ошибка!"
Public Const S_save As String = "Сохранить?"
Public Const S_netprav As String = "У Вас нет прав для редактирования!"
Public Const S_noprav As String = "У Вас отсутствуют права"
Public Const S_notlist As String = "Выберите значение из списка!"
и т.д.
1. Лень писать каждый раз
2. По теории работает быстрее, чем каждый раз генерить строку.

  Ответить  
 
 автор: ddi   (21.02.2012 в 14:58)   личное сообщение
 
 

  Ответить  
 
 автор: час   (21.02.2012 в 20:05)   личное сообщение
 
 

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList