2014-08-05 2 views
0

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

Справочная информация о том, что я делаю. Я создал запрос и форму, которую я использую для ввода критериев в этот запрос. Когда пользователь нажимает кнопку запуска, он открывает запрос и отображает критерии, которые они вводили.

Проблема, с которой я столкнулся, - это когда пользователь оставляет текстовое поле пустым в форме, которую запрос предполагает, что это будет NULL и вернуть все. Я делаю это, используя это (например [Forms]! [MyForm]. [MyCriteria] & «*»). Он отлично работает, пока пользователь не закрывает Access и после его открытия снова будет иметь критерии в первой строке таблицы.

В форме у меня есть два текстовых поля (textbox1 и textbox2), оба из двух разных таблиц. Если пользователь оставит текстовое поле1 пустым, запустите запрос, закройте Access и затем снова его откроет. Запись, связанная с textbox1, будет пустой в ее таблице перспективы, но только в первой строке. Не совсем уверен, почему это происходит

Я старался быть предельно ясным, сообщите мне, было ли какое-либо замешательство или какая-либо другая информация необходима.

EDIT

Попробую расширить немного больше.

Есть 3 таблицы, в которых есть записи. Некоторые из этих записей используются для критериев, когда выполняется запрос.

Table1 будет иметь компонент, Table2 будет иметь статус, Таблица3 будет иметь другие записи, которые не являются необходимыми для критериев, но по-прежнему показывает при выполнении запроса

Компонент и состояние это то, что должно быть используется в качестве критериев для запроса, и Пользователь вводит это в текстовое поле в форме, которая затем откроет запрос. Если пользователь оставляет пустое текстовое поле для компонента или состояния, он должен отображать все компоненты или все статусы из таблиц при запуске запроса. Это происходит, но после закрытия и повторного открытия раздела «Доступ к компоненту» или поля «Статус» в их соответствующих таблицах будет пустым, но только в первой строке этой таблицы.

+0

Похоже, что поля могут быть связаны? И эта пустая запись может быть вставлена ​​в таблицу, потому что она связана. http://stackoverflow.com/questions/13009890/bound-and-unbound-controls-in-ms-access –

+0

Думаю, я понимаю, что вы говорите. Итак, если я использую несвязанную форму, я все еще смогу использовать форму с запросом? – user3586080

+0

Я не знаю точно 100%, как ваша форма настроена на работу, но если пользователь просто вводит вещи в текстовые поля и использует это для фильтрации запроса, я не вижу причин, по которым поля должны быть связаны. –

ответ

0

Вы упомянули в своем сообщении, что используете запрос критерии подачи из формы, однако элементы управления (два текстовых поля) связаны с двумя разными таблицами в БД. Это звучит для меня так, как форма не является Unbound, где форма заблокирована таблицей, и каждый раз, когда форма загружается, форма загружает данные из таблицы, делая ее непосредственно редактировать/удалять записи. Для достижения требуемой функции поиска выполните следующие действия. Еще на Unbound & связаны: http://www.baldyweb.com/BoundUnbound.htm

  1. Создайте пустую форму, не основанную на таблице. Просто пустая форма с двумя текстовыми полями и одной кнопкой.
  2. Наименование первого текстового поля txtCriOne, а другой txtCriTwo. Назовите кнопку, runQryBtn. Сохраните форму, указав ей имя как Frm_searchQry
  3. Создайте запрос, используйте две таблицы, используя JOIN, или, как вы хотите. Для простоты я буду использовать пример таблицы таблицы клиентов и заказов.Назовите это что-то вроде, Qry_searchDB

Qry_searchDB

SELECT 
    tblCustomer.CustomerName, 
    tblCustomer.CustomerTelephone, 
    tblOrders.OrderNumber, 
    tblOrders.OrderDate 
FROM 
    tblCustomer INNER JOIN tblOrders 
ON 
    tblCustomer.CustomerID = tblOrders.CustomerID_FK 
WHERE 
    tblCustomer.CustomerName Like "*" & Forms!Frm_searchQry!txtCriOne & "*" 
Or 
    tblOrders.OrderReference Like "*" & Forms!Frm_searchQry!txtCriTwo & "*" 

Теперь сохраните этот запрос. Затем введите код, чтобы открыть этот запрос. Что-то вроде.

Это откроет запрос на основе критериев или перечислит все записи, если оба они оставлены пустыми. Надеюсь это поможет.

+0

Yup, оригинальная форма была привязана к столам, поэтому я только что сделал новую. Спасибо вам, а также спасибо OverMind. – user3586080

+0

Рад, что мы сможем помочь. Пожалуйста, не стесняйтесь отмечать это как ответ, если он вам помог. Удачи. – PaulFrancis

Смежные вопросы