2015-09-22 2 views
0

Я уже просматривал и пробовал все рекомендации, которые я могу найти, но ничего не сработало. Моя проблема в том, что я хочу создать функцию поиска в форме и нажать кнопку, чтобы отобразить результаты поиска в подформе БЕЗ открытия нового описания.MS Access: выполнить запрос в подформе

Я написал запрос, который успешно выполняет поиск элементов на основе параметров, которые я им даю (параметры написаны в текстовых полях в форме).

У меня также есть кнопка в форме, которая открывает запрос. Но это открывает запрос в новом окне таблицы данных. Это не только делает это, но я уверен, что вообще ничего не делает для подчиненности.

Это все внутри большей формы навигации.

Edit: я буду включать код запроса, но это не так уж важно, так что я положу его в формате, который показывает только немного:

SELECT [Car Table].Car_VIN, [Car Table].Car_Class, [Car Table].Car_BodyType, [Car Table].Car_Colour, [Car Table].Car_Make, [Car Table].Car_Model, [Car Table].Car_EngineType, [Car Table].Car_TransmissionType, [Car Table].Car_GPSAvailability, [Car Table].Car_BootSpace, [Car Table].Car_FuelConsumptRate, [Car Table].Car_SeatNumber, [Car Table].Car_GreenStarRating, [Car Table].Car_ANCAPSafetyRating 

FROM [Car Table] 

WHERE ((([Car Table].Car_VIN) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![txtVIN] & "*") AND (([Car Table].Car_Class) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![cmbClass] & "*") AND (([Car Table].Car_BodyType) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![cmbBodyType] & "*") AND (([Car Table].Car_Colour) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![cmbBodyType] & "*") AND (([Car Table].Car_Make) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![txtMake] & "*") AND (([Car Table].Car_Model) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![txtModel] & "*") AND (([Car Table].Car_EngineType) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![cmbEngineType] & "*") AND (([Car Table].Car_TransmissionType) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![cmbTransmissionType] & "*") AND (([Car Table].Car_GPSAvailability) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![ChGPSAvailability] & "*") AND (([Car Table].Car_SeatNumber) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![txtSeatNumber] & "*") AND (([Car Table].Car_GreenStarRating) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![cmbGreenStarRating] & "*") AND (([Car Table].Car_ANCAPSafetyRating) Like "*" & [Forms]![Navigation Form]![NavigationSubform].[Form]![cmbANCAPSafetyRating] & "*") AND ((Abs([car_fuelconsumptrate]-[Forms]![Navigation Form]![NavigationSubform].[Form]![txtFuelConsumption]))<=2) AND ((Abs([car_bootspace]-[Forms]![Navigation Form]![NavigationSubform].[Form]![txtBootSpace]))<=100)); 

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

Я также попытался сделать форму с разделенным видом, но не только не получил нигде, я не хотел иметь разделенный вид.

RIGHT NOW У меня есть кнопка, которая запускает запрос, текстовые поля, в которые я могу ввести параметры (например, если я набрал 100 в текстовое поле загрузочного пространства, он вернет все значения около 100, включая 100, или если я также набрав «kia» в текстовое поле carmake, он вернет все автомобили с загрузочным пространством около 100 и Kias) и мою подформу под ней, которая полностью пустая.

Edit: VBA код

Private Sub Command409_Click() 

Me.[Car Table subform1].Form.Requery 

End Sub 
+0

Покажите нам значимые части вашего кода и то, что вы пробовали. – Mariano

+0

@Mariano отредактировал :) – BlueRhapsody

ответ

0

Установите запрос на подчиненной-RecordSource в свойствах формы. Я полагаю, вы уже это сделали.

В вашей кнопки код место Vba:

Private Sub button_click() 
    Me.PUT_SUBFORM_NAME_HERE.Form.Requery 
End sub 
+0

Извините, я тоже должен был поставить свой код vba; я уже сделал оба действия, которые вы предложили, и когда я нажимаю кнопку, просто ничего не происходит - субформация остается пустой. Я отредактирую свое сообщение, чтобы включить код vba, который у меня был – BlueRhapsody

+0

Хорошо, это странно. Если вы протестировали SQL и работали, должна быть другая причина. Является ли ваша подчиненная форма привязана к родительской форме каким-либо образом? См. Его в свойствах подформы. Связать дочерние поля и основные поля ссылок. – asdev

+0

. Вы также можете попробовать установить простой запрос или просто таблицу в источник записей подформы. Если он ничего не показывает, это указывает на проблему в дизайне формы – asdev

0

в конце вашей кнопки поиска на событие щелчка записи эта строка кода:

Main_form_name.sub_form_name.Form.Requery 
End Sub 

, что необходимо сделать трюк

+0

Я попробовал несколько вещей, и все возвращенные ошибки: [Формы]! [Форма для навигации]! [Найти форму автомобиля]! [Автомобильная табличка subform1] .Form.Requery ^ получил ошибку 2465: can not find field 'find форма автомобиля» Me [навигационная форма] [найти форму автомобиля] [автомобиль Таблица subform1] .Form.Requery ^ у меня ошибка 2465:.! "не могу найти поле '| 1'" [навигации форма]! [найти форму автомобиля!] [Автомобиль Таблица subform1] .Form.Requery такая же ошибка, как и выше [найти форму автомобиля!] [Автомобиль Таблица subform1] .Form.Requery же, как описано выше. (точно такие же ошибки, когда я использую периоды, а не восклицательные знаки) Извините за плохое форматирование, не понял, что абзацы не появятся. – BlueRhapsody

+0

замените пробел в имени от имени с помощью подчеркивания (_) и попробуйте. то есть вместо [найти форму автомобиля] попробуйте [find_a_car_form] и убедитесь, что вы правильно написали имена форм. – Benion

+0

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

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