当放置在选项卡式页面上时,组合框中的 MS Access Forms 查询不起作用
MS Access Forms Query in Combobox does not work when placed on a tabbed page
Combobox OnChange 下的 MS Access 2013 查询在独立表单上工作,但在我放置时提示输入值,运行 它在选项卡式表单页面下。以下是我创建的详细信息:
Table:
Name: TblCustomers:
Fields: CustID, CustName, CustRegion
查询:
Name: QryCustomers:
SQL: SELECT *
FROM TblCustomers
WHERE CustRegion = Forms!FrmCustomers!cmb_Region;
形式:
Name: FrmCustomers:
RecordSource: QryCustomers
Combobox(在 FrmCustomers 表单上):
Name: cmb_Region
Items: Asia, America, Europe, MiddleEast, RoW
OnChange VBA Procedulre:
Private Sub cmb_Region_Change()
Me.Requery
End Sub
制表符形式:
Name: CustomerApp
Page1: FrmCustomers
我 运行 表单 FrmCustomers 独立,它工作得很好。同样的表格我拖到 Page1 的选项卡形式 CustomerApp 并尝试 运行,它提示:
Enter Parameter Value:
Forms!FrmCustomers!cmb_Region
请注意,我不需要查询独立工作。
如何使该表单既独立工作又在选项卡式表单页面上工作?
我认为问题出在 WHERE CustRegion = Forms!FrmCustomers!cmb_Region;
最初在 FrmCustomers 上找到 CustRegion。但现在该表格在另一个表格上!
你需要
WHERE CustRegion = Forms!CustomerApp!TabControl.Form!FrmCustomers!cmb_Region;
我现在忘记了确切的语法,但大概是这样。
删除表单的 recordSource 值:FrmCustomers
将 Open_form 事件添加到:FrmCustomers
在 open_form 事件中有此代码。 (如果 custregion 是一个字符串,相应地添加 '')
Dim SQL_GET as string
SQL_GET = "SELECT * FROM TblCustomers WHERE CustRegion = " & me.cmb_Region.value
me.recordsource = SQL_GET
这应该会根据您的 cmp_region 值检索记录。确保您选择了默认值。
Combobox OnChange 下的 MS Access 2013 查询在独立表单上工作,但在我放置时提示输入值,运行 它在选项卡式表单页面下。以下是我创建的详细信息:
Table:
Name: TblCustomers:
Fields: CustID, CustName, CustRegion
查询:
Name: QryCustomers:
SQL: SELECT *
FROM TblCustomers
WHERE CustRegion = Forms!FrmCustomers!cmb_Region;
形式:
Name: FrmCustomers:
RecordSource: QryCustomers
Combobox(在 FrmCustomers 表单上):
Name: cmb_Region
Items: Asia, America, Europe, MiddleEast, RoW
OnChange VBA Procedulre:
Private Sub cmb_Region_Change()
Me.Requery
End Sub
制表符形式:
Name: CustomerApp
Page1: FrmCustomers
我 运行 表单 FrmCustomers 独立,它工作得很好。同样的表格我拖到 Page1 的选项卡形式 CustomerApp 并尝试 运行,它提示:
Enter Parameter Value:
Forms!FrmCustomers!cmb_Region
请注意,我不需要查询独立工作。
如何使该表单既独立工作又在选项卡式表单页面上工作?
我认为问题出在 WHERE CustRegion = Forms!FrmCustomers!cmb_Region;
最初在 FrmCustomers 上找到 CustRegion。但现在该表格在另一个表格上!
你需要
WHERE CustRegion = Forms!CustomerApp!TabControl.Form!FrmCustomers!cmb_Region;
我现在忘记了确切的语法,但大概是这样。
删除表单的 recordSource 值:FrmCustomers
将 Open_form 事件添加到:FrmCustomers
在 open_form 事件中有此代码。 (如果 custregion 是一个字符串,相应地添加 '')
Dim SQL_GET as string
SQL_GET = "SELECT * FROM TblCustomers WHERE CustRegion = " & me.cmb_Region.value
me.recordsource = SQL_GET
这应该会根据您的 cmp_region 值检索记录。确保您选择了默认值。