2015-01-17 7 views
0

Фон: У меня есть таблица доступа Tbl_Party, где первичный ключ - Party_ID. У меня есть форма (frmParty) для просмотра записей в Tbl_Party, которая отображает все соответствующие поля и имеет несколько несвязанных текстовых полей. Эти несвязанные текстовые поля используются для фильтрации записей с помощью встроенного запроса, который активируется кнопкой a в форме. Все это прекрасно работает.Очистка несвязанных полей данных и выполнение запроса

Проблема: Я создал вторую кнопку Clear, которая я хочу удалить все данные из несвязанных текстовых полей и повторно запустить запрос, который, поскольку поля теперь пусты, вернет все записи.

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

Private Sub Clear_Click() 
    Me.txtBox1 = "" 
    Me.txtBox2 = "" 
    Me.txtBox3 = "" 
    Me.txtBox4 = "" 
End Sub 

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

Параметр RunCode в макросе позволяет использовать только функции. Я попытался создать функцию, которая вызывает подпроцесс, но функции, созданные в коде формы, не распознаются макростроителем, и я не могу вызвать вспомогательный процесс из функции, встроенной в модуль. Я попытался построить как функцию, так и суб (точно так же, как указано выше) в модуле, но затем он говорит мне, что не может найти поля.

Любые идеи, как решить эту проблему?

+0

Есть несколько способы перехода без макроса, но непосредственно в VBA: запрос формы, запрос на управление, DoCmd.OpenQuery и т. д. Однако меня немного смущает то, что делает запрос или существует? Это не текстовые поля формы, а текстовые поля не являются комбо или списками, содержащими запросы к источнику строк. Пожалуйста, будьте конкретны, и я могу дать тонкий ответ. Также рассмотрите назначение Null вместо «» в текстовые поля, чтобы действительно очистить их значение, а не значение нулевой длины. – Parfait

+0

Запрос используется только для фильтрации записей по полю. Так txtBox2 используется против Party_Forename с Like "*" и [Forms]! [FrmViewParty]! [TxtBox2] & "*" –

ответ

1

Try:

Me.Requery 

Если запрос сам бросает ошибку сейчас, вероятно, потому, что он содержит недействительно WHERE придаточного попытаться изменить базовый запрос, как это:

SELCT ... FROM ... WHERE (1=1) AND (...here goes your txtBox-filtered string...) 
Смежные вопросы