0

我已经搜索并尝试了我能找到的所有建议,但没有任何效果。我的问题是我想在表单中创建一个搜索功能并按下一个按钮以在子表单中显示搜索结果而不打开新的数据表。

我编写了一个查询,它根据我给它的参数成功搜索项目(参数写在表单的文本框中)。

我在打开查询的表单中还有一个按钮。但这会在新的数据表窗口中打开查询。它不仅这样做,而且我相当肯定它根本不会对子表单做任何事情。

这一切都在一个更大的导航表单中。

编辑:我将包含查询代码,但它并不那么重要,所以我将它放在一个只显示一点点的格式中:

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));

我尝试创建一个在子表单上执行重新查询的按钮,但是当我单击它时重新查询没有做任何事情,我猜是因为我并没有真正在任何地方引用查询本身。

我也试过做一个拆分视图的表单,但我不仅没有得到任何结果,我也不想拆分视图。

现在我有一个运行查询的按钮,我可以在其中输入参数的文本框(例如,如果我在引导空间文本字段中输入 100,它将返回接近 100 的所有值,包括 100,或者如果我还输入了 'kia ' 到 carmake 文本字段中,它将返回所有具有接近 100 的引导空间并且是 Kias 的汽车)和我下面的子表单,它完全是空白的。

编辑:VBA代码

Private Sub Command409_Click()

Me.[Car Table subform1].Form.Requery

End Sub
4

2 回答 2

1

在表单属性中将查询设置为 subform-recordsource。我假设你已经这样做了。

在您的按钮中放置 vba 代码:

Private Sub button_click()
    Me.PUT_SUBFORM_NAME_HERE.Form.Requery
End sub
于 2015-09-22T06:22:41.287 回答
0

at the end of your search button's on click event write this line of code :

Main_form_name.sub_form_name.Form.Requery
End Sub

that should do the trick

于 2015-09-22T07:17:59.327 回答