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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Проблема "Функция не определена в запросе"
 
 автор: Khilaiya   (26.01.2011 в 22:36)   личное сообщение
 
 

Здравствуйте!
Подскажите, пожалуйста, в чём моя проблема.
Работаю в Access 2003.
Есть запрос, в котором некоторые поля получаются на основе функций. Функция написана в модуле. Я ввожу в поле в конструкторе: =НазваниеФункции(параметры). При запуске запроса выдаётся ошибка, что функция не определена.
В Access 2007 всё работает, возвращается результат и ошибки не возникают. Но мне нужно именно в 2003.
В чём может быть проблема, возможно я что-то не так делаю? Первый раз работаю с вызовом функции.

  Ответить  
 
 автор: snipe   (27.01.2011 в 03:39)   личное сообщение
 
 

вызов в запросе так
ваше название поля: названиефункции(параметры функции)
например так
Косинус: cos([угол])

  Ответить  
 
 автор: Khilaiya   (02.02.2011 в 21:16)   личное сообщение
 
 

Ага, всё так и делаю, но ошибку выдаёт, хотя сама функция рабочая

  Ответить  
 
 автор: snipe   (02.02.2011 в 22:50)   личное сообщение
 
 

а функция определена как public?
и находится точно в общем модуле (не в модуле формы)?

разницы нет что в 2007 что 2003 в обоих версиях синтаксис и правила вызова одинаковые

  Ответить  
 
 автор: Khilaiya   (05.02.2011 в 23:39)   личное сообщение
 
 

Функция была не Public, просто Function. Я попробовала написать Public Function, но результат тот же (((

  Ответить  
 
 автор: Скорп   (06.02.2011 в 00:04)   личное сообщение
 
 

Я не большой спец в программировании
но обычно в модуле пишу так, фукция определения цвета к примеру

Private Function ColorFUN()
.............
End Function

И на событие, где нужно определить цвет, пишу

Private Sub Пикколо_Click()
ColorFUN
.....
End Sub

  Ответить  
 
 автор: snipe   (06.02.2011 в 02:36)   личное сообщение
10 Кб.
 
 

скорп - все правильно......но этот фокус пролазит если обращение к функции идет из формы в модуле которой эта функция прописана
что-бы к этой функции можно было обратиться из других форм (запросов, отчетов) нужно сделать функцию общедоступной т.е. так
Public Function ColorFUN()
.............
End Function
а что бы доступиться до функции не открывая формы - нужно функцию прописать не в модуле формы а в модуле базы

вот примерчик =>

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

Решила делать всё в Access 2007, так и не разобралась что за проблема с функциями в 2003.
Спасибо всем за советы, убедилась, что всё делаю так как и должно быть =)

  Ответить  
 
 автор: Explorer   (06.02.2011 в 22:13)   личное сообщение
 
 

try out CALL statement

я что-то не припомню проблем с вызовом функций в 2003
только если связанные с косяками в именовании объектов, косяками с форматом дат, апострофами в выражениях сравнения, доменными агрегатными функциями...

в общем ничего особо сложного...

а уж такие как а+б=в должны работать всяко :)
даже и без паблик, кстати...

  Ответить  
 
 автор: snipe   (07.02.2011 в 02:09)   личное сообщение
 
 

Что-то припоминается.....
У меня вроде как такое было (давно давно) и возникало когда пользовался русскими буквами в переменных и названии функции

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