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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Функция kvartal
 
 автор: debilder   (01.12.2008 в 12:13)   личное сообщение
 
 

У меня есть функция расчёта текущего квартала Public Function kvartal() As Variant
Как мне её использовать в статическом запросе? Так не получаеться =kvartal([Forms]![Форма1]![Поле29]). [Forms]![Форма1]![Поле29] это поле с датой. Заранее благодарен.

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

а форма открыта?
а зачем ее в запрос если в ней данные из запроса не используются?
Покажите весь текст запроса

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

форма открыта.

SELECT TAB.KV, TAB.*
FROM TAB
WHERE (((TAB.KV)=kvartal([Forms]![Форма1]![Поле29])));

  Ответить  
 
 автор: osmor   (01.12.2008 в 13:04)   личное сообщение
 
 

и что говорит?

  Ответить  
 
 автор: debilder   (01.12.2008 в 13:37)   личное сообщение
 
 

Неверное число аргументов функции в выражении запроса

  Ответить  
 
 автор: Denis V.   (01.12.2008 в 14:18)   личное сообщение
 
 

Судя, по тому какое объявление функции Вы привели, то функция вообще не принимает аргументов. Отсюда и сообщение ;-)

  Ответить  
 
 автор: Мюллер   (01.12.2008 в 14:19)   личное сообщение
 
 

У вас функция определена так

 Public Function kvartal() As Variant



А используете ее так

SELECT TAB.KV, TAB.*
FROM TAB
WHERE (((TAB.KV)=kvartal([Forms]![Форма1]![Поле29])));


У вас же ф-ция без входных параметров, а вы пытаетесь ей передать параметры. Потому и ругается

  Ответить  
 
 автор: debilder   (01.12.2008 в 14:27)   личное сообщение
 
 

Как мне исправить функцию?

Public Function kvartal() As Variant

Dim TheDate As Date
TheDate = now()

Dim MSG
Dim Y, Y1, Q, q1 As Integer


Y = Year(TheDate)
Q = DatePart("q", TheDate)
If Q > 1 Then
q1 = Q - 1
Y1 = Y
Else
q1 = 4
Y1 = Y - 1
End If

kvartal = q1

  Ответить  
 
 автор: Мюллер   (01.12.2008 в 14:38)   личное сообщение
 
 

Public Function kvartal(Dat As Date) As Variant
kvartal = DatePart("q", Dat)
End Function

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

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