子窗体在Access窗体中没有重新查询

时间:2015-09-02 14:37:13

标签: ms-access

我的主窗体中有一个OnOpen事件,它创建了一个新的(相当复杂的)SQL语句,然后将其分配给查询。

即:

CurrentDb.QueryDefs("Confirmed_Operations").SQL = allOpSQL & " UNION " & opSQL & " UNION " & CurrentDb.QueryDefs("qryOrder_Additional_Operations").SQL

到目前为止,这种方法完美无缺,完全符合预期。在我的mainForm上,我有一个subForm,其Recordset是所述查询(Confirmed_Operations)。在我定义QueryDef的行之后,我有:

Me.subConfirmed_Operations.Form.Requery

哪个应该显示新数据。但是,它没有。

它实际上显示以前的数据。这意味着如果我有3组不同的数据,A,B,C和我试图打开A,它会加载空。

如果我尝试打开B,它会显示A的数据,然后如果我打开C数据的表单(它是一个popUp表单),它会显示B的数据。

表格中的所有其他操作都有效,只有这一个子表格没有。

有关如何修复它的任何想法?

P.S。:我在表单中的按钮上有其他几个Requery语句,并且没有任何影响这个表单。

1 个答案:

答案 0 :(得分:1)

解决方法:

而不是:

CurrentDb.QueryDefs("Confirmed_Operations").SQL = allOpSQL & " UNION " & opSQL & " UNION " & CurrentDb.QueryDefs("qryOrder_Additional_Operations").SQL
Me.subConfirmed_Operations.Form.Requery

做的:

CurrentDb.QueryDefs("Confirmed_Operations").SQL = allOpSQL & " UNION " & opSQL & " UNION " & CurrentDb.QueryDefs("qryOrder_Additional_Operations").SQL
Me.subConfirmed_Operations.Form.RecordSource = CurrentDb.QueryDefs("Confirmed_Operations").SQL

或者(如果查询本身仅以此形式使用,而不是其他地方):

Me.subConfirmed_Operations.Form.RecordSource = allOpSQL & " UNION " & opSQL & " UNION " & CurrentDb.QueryDefs("qryOrder_Additional_Operations").SQL

我不喜欢变通方法,这是一个奇怪的错误,所以如果有人知道为什么简单的Requery不起作用,请分享。