powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Пользовательская функция в запросе
8 сообщений из 8, страница 1 из 1
Пользовательская функция в запросе
    #32083831
DIMA_APN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. В аксесе есть запрос, в котором есть вычисляемые поля. Значения этих полей должна возвращать пользовательская функция, сделанная, к примеру, в Module1. Но когда я пишу в строчке "Поле"
ВЫРАЖЕНИЕ1: стоимость_модель(Код,Код2), появляется ошибка "Неизвестная функция". Подскажите?
...
Рейтинг: 0 / 0
Пользовательская функция в запросе
    #32083833
-=Alexey=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
финкция должна быть объявлена как public
...
Рейтинг: 0 / 0
Пользовательская функция в запросе
    #32084154
DIMA2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Она и есть PUBLIC. Вообще интересно себя Access2к (SP2) ведет. Местами видит функцию, местами - нет. КОгда перезагружаю БД, все ОК. Черз некоторое время опять появляется ошибка.
...
Рейтинг: 0 / 0
Пользовательская функция в запросе
    #32084253
Julius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если при исполнении проекта VBA происходит любая не обработанная ошибка, ядро Jet перестает видеть проект (а значит и функции) и снова "прозревает" только в новом сеансе.
...
Рейтинг: 0 / 0
Пользовательская функция в запросе
    #32084983
DIMA2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть мне надо сделать все ситуации, которые могут потенциально вызывать ошибки, сделать контролируемыми? Интересно, как это можно обойти?...
...
Рейтинг: 0 / 0
Пользовательская функция в запросе
    #32085484
Julius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обойти никак. Во всех процедурах обработки событий обрабатывать ошибки в обязательном порядке, тогда работоспособность приложения сохранится. Вообще-то, этот косяк наверное самый большой недостаток Access (локального).
Попробуйте перейти все же на ADP и писать запросы на T-SQL, который пользуется функциями не на VBA, а на своем родном языке и таких сбоев не допускает. Да и технология ADP все же более продвинутая, к тому-же клиент-сервер. Пока лучшего решения нет.
...
Рейтинг: 0 / 0
Пользовательская функция в запросе
    #32085617
DIMA2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда как можно объяснить такую фигню. Есть запрос:
Код: plaintext
1.
2.
3.
4.
5.
PARAMETERS kv Short;
INSERT INTO БракОтчет ( КодКвитанции, СервисЦентры, Запчасти, Работы, Комплектация )
SELECT [Учет брака].[Номер квитанции], Квитанция_СЦ([Номер квитанции]) AS СЦ, Квитанция_Запч([Номер квитанции]) AS Запч, Квитанция_Работы([Номер квитанции) AS Работы, Квитанция_Компл([Номер квитанции]) AS Комплект
FROM [Учет брака]
WHERE ((([Учет брака].[Номер квитанции])=[kv]))
WITH OWNERACCESS OPTION;


После некоторых действий (вполне возможно, что это как раз "до первой звезды" (ошибки) запрос волшебным образом преображается:
Код: plaintext
1.
2.
3.
4.
5.
PARAMETERS kv Short;
INSERT INTO БракОтчет ( КодКвитанции, СервисЦентры, Запчасти, Работы, Комплектация )
SELECT [Учет брака].[Номер квитанции], [Квитанция_СЦ]([Номер квитанции]) AS СЦ, [Квитанция_Запч]([Номер квитанции]) AS Запч, [Квитанция_Работы]([Номер квитанции]) AS Работы, [Квитанция_Компл]([Номер квитанции]) AS Комплект
FROM [Учет брака]
WHERE ((([Учет брака].[Номер квитанции])=[kv]))
WITH OWNERACCESS OPTION;


Вся фишка в в квадратных скобках, которые, скорее всего, мешают видеть функцию. Что можете здесь посоветовать? Благодарю.
...
Рейтинг: 0 / 0
Пользовательская функция в запросе
    #32085668
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственное, что можно было посоветовать, ИМХО уже сказал Julius.
А обходить ситуации, где возникают ошибки, можно по-разному. Можно по-простому: On Error Resume Next. Можно по-умному - выявить возможные ошибки, записать их номера и написать обработчик с учетом специфики каждой ошибки, чтобы на выходе не получить бессмыслицу.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Пользовательская функция в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]