【发布时间】:2015-09-07 13:33:20
【问题描述】:
我有一个看起来很简单的问题,但结果比我想象的要复杂。
我的子表单中有一个字段(列),它是一个组合框。 我在另一个子表单中有一个字段(列),我想通过它过滤这个组合框。
基本上,过滤前的组合框有大约 600 条记录,对于普通用户来说太多了。我创建了一个简单的 subForm,其字段链接到 mainForm,并且效果很好(即所选的记录字段 ID 显示在 mainForm 上)。
现在我想要的是这个组合框被这条记录过滤(即只显示相关字段)。问题是,如果我只是用这个给定的过滤器重新查询它,其他字段就会显示为空白。
我希望此过滤器仅适用于 NEW RECORDS 组合框,而不是整个数据表视图。
我所做的是:
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
但是,这种解决方法有时仍会显示“空白”记录(我必须通过单击不同的记录来刷新表单),我觉得很奇怪,我不得不一直这样做。有没有更简单的方法可以做到这一点?
【问题讨论】: