powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему не работает в запросе рукописная функция?
24 сообщений из 24, страница 1 из 1
Почему не работает в запросе рукописная функция?
    #32566302
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть форма, на ней лист. Из листа считываются года (billing_year , стринги в таблице) и присваиваются в переменную, которя выглядит как '2002','2003' и т.д. Разберём простейший случай. Допустим я беру один год, т.е. переменная glob_SS_survey_year= '2003'. Пишу такую простейшую функцию (нарочно упрощаю)

Код: plaintext
1.
2.
Function fBillingYear() As String
    fBillingYear = glob_SS_survey_year
End Function
И делаю такой простейший запрос, который является сорсом для рипорта.
(всё сильно упрощаю)

select f1,f2,billing_year from MyTable where billing_year=fBillingYear()

Не читает. Но и не ругается. Просто выдаёт ноль записей. Иду в debug window, печатаю результат fBillingYear(). Выдаёт правильно '2003'. Подставляю напрямую в запрос вместо fBillingYear() - '2003', тоже выдаёт записи, т.е. записи сами есть. Подставляю назад fBillingYear() , ни хренаськи. Почему не читает написанную мной функцию для стринга? А другую, написанную мноё же для даты читает.
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566303
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А поле billing_year текстовое?
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566305
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566314
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
Function fBillingYear() As String
    fBillingYear = "2003"
End Function
а вот так у меня работает - стринг в Where надо окружить кавычками
напрямую ты же их ставишь!
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566323
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shuhard, а вы молодец. И вправду так работает. Всегда знала, что этот форум the best!
Но радость моя была недолгой , как говориться. Мне-то на самом деле надо, чтобы выбирадось по нескольким годам, типа как
in ('2003','2004') и т.п. А так оно уже опять не понимает. Может у кого есть какие идеи?
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566334
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Shuhard, я не понял, в чем твоя идея. Чем твой вариант отличается от исходного.
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566348
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мадамаShuhard, а вы молодец. И вправду так работает. Всегда знала, что этот форум the best!
Но радость моя была недолгой , как говориться. Мне-то на самом деле надо, чтобы выбирадось по нескольким годам, типа как
in ('2003','2004') и т.п. А так оно уже опять не понимает. Может у кого есть какие идеи?

уже приседали Саныч с Top для ёжика
а я с In
TOP и IN работают исключительно в строке Select и не передаются извне
поэтому необходимо менять строку запроса сохраненного под неким именем
в примере q2 - запрос ,P_1 - поле в форме
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim mydb As DAO.Database
Dim myq As QueryDef
Dim stDocName As String
Set mydb = CurrentDb
Set myq = mydb.QueryDefs![q2]
myq.SQL = "SELECT * FROM TCorp WHERE Corp_id  In  (" & Me![P_1] & ")"
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566350
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычShuhard, я не понял, в чем твоя идея. Чем твой вариант отличается от исходного.
Саныч звеняй!
злой я от общения с рекрутерами
просто код порисую без комментариев
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566352
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Но это только если с mdb работает одновременно не более одного юзера.

Shuhard, у меня клин в голове, расскажи, что там было...
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566355
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Select TOP Forms![xxx]![yyyy] FROM T1 

такая конструкция ни через поле ни через функцию не работает
нужен querydef

насчёт многопользовательской
если это не отчёт то .execute или recordset
если отчёт то локальная временная таблица либо генерация уникального имени запроса + замена источника отчёта
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566359
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я хотела выкрутиться без изменения строки запроса, но видно не судьба. Этот-то способ я знаю. Просто хотелось поэлегантнее. Ну и хрен с ним. Спасибо Shuhard. И наплюйте вы на рекрутеров, не берите близко к сердцу. Они ещё пожалеют, кого потеряли.
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566360
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
мадамаИ наплюйте вы на рекрутеров, не берите близко к сердцу. Они ещё пожалеют, кого потеряли.
Присоединяюсь.
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566365
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой на себя
в 40 лет первый раз нанимаюсь на работу
(институт-кафедра-друзья позвали)
не могу сформулировать для себя критерии отбора
будучи до этого начальником ИТ-отдела начинаю "рулить" ситуацию
результат анекдотичный
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566371
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут, на "гнилом" западе есть множество книг и иструкций на эту тему. Как наниматься, что говорить, как держаться и даже что одевать на интервью. И главное, что НЕ говорить. Это конечно большая работа - хорошая подготовка к интервью. И с налёту не всегда получается. Как говориться, быть хорошим специалистом это одно, а умение хорошо продать себя это другое. И это не всегда одинаково развито в одном человеке. Но над этим можно работать. И шанс обязательно подвернётся.
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566373
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
мадамаТут, на "гнилом" западе есть множество книг и иструкций на эту тему. Как наниматься, что говорить, как держаться и даже что одевать на интервью. И главное, что НЕ говорить. Это конечно большая работа - хорошая подготовка к интервью. И с налёту не всегда получается. Как говориться, быть хорошим специалистом это одно, а умение хорошо продать себя это другое. И это не всегда одинаково развито в одном человеке. Но над этим можно работать. И шанс обязательно подвернётся.
И в результате на Западе полно людей, которые умеют себя продать, и совершенно невозможно определить, кто из них что из себя представляет на самом деле. Идиотизм, однако.
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566379
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, не волнуйтесь так Саныч, когда доходит до дела, как вы думаете, долго ли бестолковые продержаться? Работу ведь делать надо. Тут вообще берут сначала на probation period, месяца 3, к тебе присматриваются и если не подошёл, делают тебе "попрошу вас выйти вон".
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566380
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Это я понимаю. У нас ведь тоже всё именно так. Но все равно маразм, что нужно специально учиться себя продавать, тогда как все знают, что это ничего не отражает.

А еще у нас в некоторых организациях нужно при приеме на работу проходить психотест. И отдельно есть курсы по подготовке к психотестам, которые берут неплохие деньги. И на этих курсах учат, что домик надо рисовать с трубой, дерево с дуплом (к примеру), а человечка с пуговицами. И в результате психотест выбирает не тех, кто обладает какими-то свойствами личности, а тех, кто заплатил за курс.
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566382
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже отбор... :)))
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566386
Фотография Shuhard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мадамаТут, на "гнилом" западе есть множество книг и иструкций на эту тему. Как наниматься, что говорить, как держаться и даже что одевать на интервью. И главное, что НЕ говорить. Это конечно большая работа - хорошая подготовка к интервью. И с налёту не всегда получается. Как говориться, быть хорошим специалистом это одно, а умение хорошо продать себя это другое. И это не всегда одинаково развито в одном человеке. Но над этим можно работать. И шанс обязательно подвернётся.
у меня обратная проблема как выбрать из предложений одно!
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566390
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сочувствую, этот вариант еще хуже :)
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566401
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мадамаДа, я хотела выкрутиться без изменения строки запроса, но видно не судьба. Этот-то способ я знаю. Просто хотелось поэлегантнее. Ну и хрен с ним.

Есть, впринципе, способ - искать подстроку в списке значений раделенных запятой.

Примерно так:
Код: plaintext
1.
2.
3.
select f1,f2,billing_year 
from MyTable 
where instr( ','+szValList+',', ','+CStr(billing_year)+',')> 0 

Но этот способ не всегда хорош - запрос может серьезно замедлиться.
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32566765
аха
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЕсть форма, на ней лист.

вот с этого места поподробнее.
Ибо:
Если лист имеет сохраненный сурс типа "запрос/та-бла" (скажем под неймом MyListQry), то можно не читать значения в строку, а написать ф-ю IsMyListSelected([Optional] idList) Boolean

(внутри примерно так: в статик массив гонится набор id при первом обращении (idList=Null [or Empty -в зависимости от конкретики]) и возвращается True, при IsMyListSelected(idList) (idList Not NULL) просто перебором (значений-то в листе мало, изгаляться с быстрым поиском не надо) проверяем наличие айди в массиве.

, а дальше вместо IN делать
Код: plaintext
1.
2.
3.
...
FROM [та-бла] INNER JOIN  MyListQry
 ON [та-бла].[billing_year] = MyListQry.billing_year
  WHERE IsMyListSelected(MyListQry.idList) AND IsMyListSelected(Null)

но можно и щить строчку в VBA, как предложено
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32567972
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автору меня обратная проблема как выбрать из предложений одно!

Ну это не трудно. Для меня это было бы так:

1.Деньги (просто и в сравнении с имеющимися)
2.Перспективность (позиции, компании, направления и т.д.)
3.Интересность работы
4.Удобство добирания на работу (что б не надо было для этого например перебираться в другую страну или город, или 3 часа в один конец)

У других эти критерии могут варьироваться. Как например у кого-то на всех местах могут быть деньги, у кого-то третье может стать первым и т.д. и т.п. У кого-то могут добавиться ещё критерии. Вот и всё.

-----------------------
Пойду попробую последние предложения по запросу. Кстате спасибо за них. Sounds very good.
...
Рейтинг: 0 / 0
Почему не работает в запросе рукописная функция?
    #32568225
мадама
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё разрешила. Если кому-то интересно, рассказываю.

1. Присобачила к листу табличку, в неё дополнительное поле "selected"

2. Перед обрашением к рипорту в это поле запихиваю еденички если этот год выбран и нолики если нет. Или все еденички, если ничего не выбранно (важный момент!)

3.Естественно связываю эту табличку с запросом для рипорта по полю billing_year где selected=1.

Т.е. спасибо axa за наводку.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Почему не работает в запросе рукописная функция?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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