【发布时间】:2018-01-14 01:10:24
【问题描述】:
我正在尝试仅更新用户在表单中过滤的表中的行。 直接使用当前应用于表单的过滤器(me.filter)似乎很聪明。不幸的是,它没有立即更新。我需要将表单切换到编辑并返回到表单视图才能获得 me.filter 的真正价值。
详情:使用Access 2013,表单是子表单
如何根据当前和手动设置的条件更新 me.Filter 的值?
或者重新表述问题:如何获得(子)表单的 CURRENT 过滤字符串?
Public Sub SetSelect()
Dim strSQL As String
Dim temp As Variant
'unsuccessful tries to update me.filter
temp = Me.FilterOn
Me.FilterOn = False
Me.FilterOn = temp
Me.Parent.Requery
Debug.Print Me.Filter
'--- actual code
If Me.FilterOn Then
strSQL = "UPDATE Bauteile SET Auswahl = true WHERE " & Me.Filter & ";"
DoCmd.RunSQL strSQL
strSQL = "UPDATE Bauteile SET Auswahl = false WHERE not(" & Me.Filter & ");"
DoCmd.RunSQL strSQL
Else
DoCmd.RunSQL "UPDATE Bauteile set Auswahl= true"
End If
End Sub
更新: 我在网上找到了上面的代码sn-p。 http://www.supportnet.de/t/2219076 显然它在 2009 年有效。会是 Access 2013 的问题吗?
【问题讨论】: