我有一个相当简单的外观问题,但事实证明它比我想像的要复杂。在数据表视图窗体(MS Access)中只需要一条记录
我有一个字段(列)在我的subForm这是一个组合框。 我有一个字段(列)在另一个子窗体中,我想过滤这个组合框。
基本上,过滤之前的comboBox有大约600条记录,太多的数据不能被临时用户滚动。我创建了一个简单的子表单,其字段链接到一个mainForm,并且完美地工作(即所选的记录字段ID显示在mainForm上)。
现在我想要的是,这个组合框被这条记录过滤(即只显示相关的字段)。问题是,如果我用这个给定的过滤器简单地Requery它,其他字段显示空白。
我希望此过滤器仅适用于新记录组合框,而不是整个数据表视图。
我所做的是:
Private Sub Sekacie_Operacie_GotFocus()
Dim SQL As String
SQL = CurrentDb.QueryDefs("qrySekacie_Operacie").SQL
Me.Sekacie_Operacie.RowSource = Replace(SQL, ";", "") & " WHERE Sekacie_Operacie.Operacia_ID = " & Me.Parent.Form!txtOP_ID
Me.Sekacie_Operacie.Requery
'works kinda as intended
End Sub
Private Sub Form_AfterInsert()
Me.Sekacie_Operacie.RowSource = CurrentDb.QueryDefs("qrySekacie_Operacie").SQL
Me.Refresh
End Sub
当我在我的过滤器窗体中选择记录:
Private Sub Form_Current()
Dim SQL As String
SQL = CurrentDb.QueryDefs("qrySekacie_Operacie").SQL
With Me.Parent.Form.subSekacie_Operacie_Modelu
.Form!Sekacie_Operacie.RowSource = SQL
.Form.Refresh
End With
End Sub
然而,这种解决方法仍显示“空白”的记录,有时(我不得不刷新通过点击不同的记录),我觉得很奇怪,我不得不一路去做这件事。有没有简单的方法来完成这一点?