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

Форум: MS ACCESS

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

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

 
 

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

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

тема: помогите с запросом
 
 автор: час   (07.10.2009 в 09:44)   личное сообщение
 
 

rst.Open "SELECT USERS_TRANSACTIONS_TBL.*" _
& " From USERS_TRANSACTIONS_TBL" _
& " Where (((CDate([DATE_RECORDS]) >= CDate('" & Me!Calendar1 & "')) <> 0) And ((CDate([DATE_RECORDS]) <= CDate('" & Me!Calendar2 & "')) <> 0))" _
& " WITH OWNERACCESS OPTION;", GLB_con, adOpenKeyset, adLockOptimistic

несоответствие типов данных
Вчера работало

[DATE_RECORDS] - тип данных строковое 01.01.09

Me!Calendar1 - календарь на форме тип данных date 01/01/09

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

блин чё такое с датами

Dim DATA_STR1 As String
Dim DATA_STR2 As String
Dim DATA_S1 As Date
Dim DATA_S2 As Date


DATA_STR1 = Format(CStr(Me!Calendar1), "dd.mm.yyyy")
DATA_STR2 = Format(CStr(Me!Calendar2), "dd.mm.yyyy")
DATA_S1 = CDate(DATA_STR1) несоответствие типов данных
DATA_S2 = CDate(DATA_STR2) несоответствие типов данных

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

У мну вопросов не возникает. Все нормально конвертируется.

  Ответить  
 
 автор: ДрЮня   (07.10.2009 в 11:27)   личное сообщение
 
 

региональные настройки нужно проверить
вкладка дата

  Ответить  
 
 автор: Силblч   (07.10.2009 в 11:44)   личное сообщение
 
 

Format(CStr(Me!Calendar1), "\#mm\/dd\/yyyy\#")


и CDate не надо потом, имхо

  Ответить  
 
 автор: Анатолий (Киев)   (07.10.2009 в 11:53)   личное сообщение
 
 

Час, вам надо не лениться изучать HELP, и внимательно читать этот форум.
В критерии отбора дата должна быть представлена в виде:
#mm/dd/yyyy#, или #m/d/yyyy#, или #mm/dd/yy#, или #m/d/yy#
Дробное число с разделителем "."
Текст должен біть взят в кавічки или апострофы, а внутри текста такой символ дублируется.

Что касается:
DATA_STR1 = Format("01/01/09", "dd.mm.yyyy")
DATA_S1 = CDate(DATA_STR1)

то у меня тоже всё работает. Что у вас получается в DATA_STR1?
Кстати, CStr() здесь совершенно лишняя, а при Null в Me!Calendar1 приведет к ошибке.

  Ответить  
 
 автор: час   (07.10.2009 в 12:12)   личное сообщение
 
 


Час, вам надо не лениться изучать HELP, и внимательно читать этот форум



Эт точно

Закрыл программу, открыл и всё заработало как и вчера - без запинки

  Ответить  
 
 автор: час   (07.10.2009 в 12:14)   личное сообщение
 
 


а при Null в Me!Calendar1 приведет к ошибке.


Спасибо за предупреждение
Но элемент управления Me!Calendar1 он видимо всегда чёта будет содержать
к тому же при открытии он сразу устанавливается в Date()
как и Me!Calendar2

  Ответить  
 
 автор: час   (07.10.2009 в 12:15)   личное сообщение
 
 

Всем спасибо!!!!!!!!!


региональные настройки нужно проверить
вкладка дата


автор Дрюня

===================

  Ответить  
 
 автор: час   (07.10.2009 в 12:19)   личное сообщение
 
 

косая черта подвела.........

  Ответить  
 
 автор: ДрЮня   (07.10.2009 в 12:54)   личное сообщение
 
 

на самом деле это не панацея - не будешь ведь бегать по всем и проверять рег. настройки ?

  Ответить  
 
 автор: час   (07.10.2009 в 14:06)   личное сообщение
 
 

не будешь ............

а вот это панацея???
#mm/dd/yyyy#

  Ответить  
 
 автор: час   (07.10.2009 в 14:15)   личное сообщение
 
 

У мну недавно случай был.....
Звонит клиент и говорит - ваша программа на одном из компов -неправильно деньги считает(со вчерашнего дня)
А чё спрашиваю вчера было - да ничё особенного прогу новую нам поставили - мы её тестировали...............
====================================
так вот в этой проге - внутри написано - поменять регион настройки -"," на "."
запятую на точку ...... и все дела..............
может и мне так жа написать????

Как это в VB6 написать???

  Ответить  
 
 автор: ДрЮня   (07.10.2009 в 14:21)   личное сообщение
 
 

плохое решение.
даже если делать так:
- при старте программы определить рег. настройки;
- поменять если нужно рег. настройки;
- поработать;
- перед закрытием программы вернуть рег. настройки.
---
что будет, если работа программы завершится аварийно ?
правильно: "большое спасибо" от юзера.

  Ответить  
 
 автор: час   (07.10.2009 в 14:22)   личное сообщение
 
 

плохое решение
============================

А не возвращать взад, поменяв однажды

  Ответить  
 
 автор: ДрЮня   (07.10.2009 в 14:57)   личное сообщение
 
 

Ваше коварство не имеет границ :)

  Ответить  
 
 автор: час   (07.10.2009 в 15:15)   личное сообщение
 
 

  Ответить  
 
 автор: Анатолий (Киев)   (07.10.2009 в 15:29)   личное сообщение
 
 


[DATE_RECORDS] - тип данных строковое 01.01.09


Вот в этом ваша проблема. Почему оно строковое?
Может у вас и деньги указаны в строковых полях. Почему деньги стали считаться неправильно при переходе с "," на "."?

Обычно засада с дробными числами получается в противоположной ситуации (с "." на ","), когда дробное число при вставке в SQL выражение получается с "," и запрос перестает работать.
Чтоб исключить подобную ситуацию, я использую ф-ю Str(дробное число).

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

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