Форма не может найти поле при фильтрации

MrShin
Дата: 06.02.2016 13:43:23
Чудеса, да и только. Бьюсь полдня, не могу понять в чем дело.
Имеется три таблички, в форме связаны две из них, третья используется в комбобоксе. Если открыть форму, наложить любой фильтр на TransactionTypeID через заголовок (например, исключить пустые строки), а затем попытаться открыть фильтр по другому полю, то выдается ошибка, что не может найти поле TransactionTypeID. Ошибка пропадает, если убираем либо комбобокс (превращаем в текст), либо из запроса удаляем таблицу Tenants1. Ни одно поле из этой таблицы не используется.
Убрал все лишнее, базу создал заново, данные импортировал. 2010 32 бита.
Есть идеи куда копать?
MrShin
Дата: 06.02.2016 16:04:48
Похоже, это баг. Ошибка зависит от направления джоина мехду таблицами в запросе формы. Если первая таблица в джоине не та, по которой идет фильтрация, возникает сообщение об ошибке.

Этот же вопрос задавал на Стеке, толком не помогли, но навели на мысли. более подробный ответ там
ПЕНСИОНЕРКА
Дата: 06.02.2016 21:00:40
MrShin
Похоже, это баг. Ошибка зависит от направления джоина мехду таблицами в запросе формы. Если первая таблица в джоине не та, по которой идет фильтрация, возникает сообщение об ошибке.

Этот же вопрос задавал на Стеке, толком не помогли, но навели на мысли. более подробный ответ там


у вас не установлены связи таблиц
Вакшуль Сергей
Дата: 06.02.2016 22:24:47
MrShin,

Добрый день, Сергей

честно говоря, я не мог понять, что у вас происходит, пока не прочитал ваш текст на английском до конца :)
Вы пользуетесь "small arrow in column header, like in Excel", а это просто не очевидно. Я например, упорно пользовался кнопками фильтра с ленты и на сообщение на натыкался

Да, действительно, выскакивает сообщение.

Там же, на stackoverflow вам сказали:
Munsterlander
you would not be using a form in datasheet view without first creating an actual query and setting up the criteria filter as I previously wrote. Much more efficient use of Access.

Я проверил во всех режимах: табличная/ленточная/проста формы - сообщение выдается везде.
Но автор прав в том, что если сделать сохраненный запрос и использовать его в качестве источника данных формы, то нежелательное сообщение исчезает. Во всяком случае в опубликованном вами примере.
MrShin
Дата: 08.02.2016 09:27:13
Вакшуль Сергей
Я например, упорно пользовался кнопками фильтра с ленты и на сообщение на натыкался

Странно. Попробовал Filter с ленты (Home->Sort&Filter), ошибка вылезла. Вообще эта подопытная форма является субформой, в приложении при этом стандартная лента вообще спрятана, лента своя (кстати, спасибо за очень толковые статьи и примеры о ленте и обработчике событий, очень помогло с контекстными закладками!)

Проверил, действительно проблема исчезает при использовании сохраненного запроса, дополнил свой ответ на Стеке.
Вакшуль Сергей
Дата: 08.02.2016 10:04:54
MrShin,

Я пользовался фильтром по выделенному и маленьким выключателем "применить". Так сообщения нет. А если использовать большую кнопку фильтра с ленты, то выдается сообщение.

Насчет контрастных - рад, что пригодилось.