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

Форум: MS ACCESS

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

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

 
 

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

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

тема: 2003 ошибка в запросе при работе с датами...
 
 автор: Nadin   (26.03.2012 в 20:13)   личное сообщение
 
 

DoCmd.RunSQL "UPDATE приходы SET приходы.принят = -1, приходы.дата= " & Now() & ", приходы.оплачено=" & s_op & "" _
& " WHERE (приходы.[код прихода]=" & kod_dok & "); ", -1

" & Now() & " , тут не правильно....Пробовала и убирать кавычки и скобки и добавлять одинарные...
Подскажите, плиз..не нашла нигде.

  Ответить  
 
 автор: ДрЮня   (26.03.2012 в 23:10)   личное сообщение
 
 

сравните форматы поля "приходы.дата" в таблице и то, что в Вашем случае возвращает функция Now()

  Ответить  
 
 автор: Nadin   (27.03.2012 в 07:46)   личное сообщение
 
 

формат поля в таблице - полный формат даты...и то же самое возвращает функция Now.....
Все совпадает, но при запуске запроса ругается на неправильный синтаксис в дате..или вообще пишет что запись была изменена типа другим пользователем. Но ошибка именно там. потому как если я закоментирую этот блок . все работает.

  Ответить  
 
 автор: snipe   (27.03.2012 в 08:54)   личное сообщение
 
 

приходы.дата= " & Now() & "

видители функция Now() возвращает конкретное значение в виде 25.12.2012 15:45:14
и оно должно быть оформлено соответствующим образом
синтаксис не помню - хоть убей

для Date например так
приходы.дата= #" & Date() & "#

возможно что еще придется применить функции преобразования (форматирования) для приведения к "правильному виду"

либо попробывать вот так (авось пролезет)
DoCmd.RunSQL "UPDATE приходы SET приходы.принят = -1, приходы.дата= Now() , приходы.оплачено=" & s_op & "" _
& " WHERE (приходы.[код прихода]=" & kod_dok & "); ", -1

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

Не удивлюсь ели запрос с Now() не будит работать

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

приходы.дата --это дд.мм.гггг
Now() -- это еще и чч.мм.сс

  Ответить  
 
 автор: Nadin   (27.03.2012 в 17:25)   личное сообщение
 
 

Это почему еще? Ну все же правильно....А не работает(

  Ответить  
 
 автор: Nadin   (27.03.2012 в 17:34)   личное сообщение
 
 

Вот так и пролазит..но не всегда. В 2 транзакциях из пяти. .. А в трех случаях Now в поле приходы.дата значение изменяет на нужное, но тут же ругается что запись была изменена др пользователем ..И дальше код не выполняется..даже приходы.принят не обновляет на -1.
Спасибо всем! Мне важно было знать, что я не ошиблась в синтаксисе с now. Значит ошибка в чем то другом..Будем искать:).

  Ответить  
 
 автор: Анатолий (Киев)   (27.03.2012 в 10:39)   личное сообщение
 
 


DoCmd.RunSQL "UPDATE приходы SET приходы.принят = -1, приходы.дата= Now(), приходы.оплачено=" & s_op & " WHERE (приходы.[код прихода]=" & kod_dok & "); ", -1

Что у вас в s_op?

  Ответить  
 
 автор: Nadin   (27.03.2012 в 17:10)   личное сообщение
 
 

s_op = DSum("Nz([сумма],0)", "приход_зап", "[код прихода]=" & kod_dok)

  Ответить  
 
 автор: snipe   (27.03.2012 в 17:47)   личное сообщение
 
 

Что-то подсказывает мне что -1 это True

и может так
s_op = nz(DSum("[сумма]", "[приход_зап]", "[приход_зап].[код прихода]=" & kod_dok),0)

  Ответить  
 
 автор: Nadin   (27.03.2012 в 21:23)   личное сообщение
 
 

Нашла проблему в др строке:
Вместо Me![s_o])= Null, надо было
IsNull(Me![s_o])

Но теперь мне нужно в другой запрос вставить дату через переменную.
Все форматы совпадают,

data11 = IIf(IsNull([дата3]), Date, [дата3)

DoCmd.RunSQL "UPDATE приходы SET приходы.оплачено = '" & s_kopl & "', приходы.дата_оплачено_постку ='" & data11 & "'" _
& " WHERE (((приходы.[код прихода])=" & Положение & ")); ", -1

" & data11 & " ....снова ругается, не помогают ни решетки , ни одинарные кавычки, ни вообще без кавычек ..ошибка синтаксиса
Помогите , пожалуйста, победить даты

  Ответить  
 
 автор: Дядя Федор   (28.03.2012 в 07:52)   личное сообщение
 
 

Вото так попробуйте

...= #" & Format(data11, "m\/d\/yyyy") & "# WHERE ...

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