2015-10-16 86 views
0

我有一個帶子窗體查詢的窗體。子窗體查詢有一排複選框(綁定到表)供用戶選擇多個項目。當用戶按下命令按鈕時,將運行另一個查詢來搜索標記爲true的所有複選框,然後打開另一個表單。我試圖做到這一點,當按下另一個命令按鈕時,子窗體查詢中的所有複選框值都將更改爲false。到目前爲止,我只使用的代碼將最後選中的複選框更改爲false。我如何獲得它將所有值更改爲false?清除訪問子窗體上的綁定複選框

Dim ctl As Control 

For Each ctl In Me.SuppliesQuerySubform.Controls 
    If ctl.ControlType = acCheckBox Then 
     If ctl.Value <> False Then 
      ctl.Value = False 
     End If 
    End If 
Next ctl 

回答

0

你有兩個選擇:

1)更新使用SQL的記錄。像UPDATE tblItems SET IsSelected = FALSE WHERE ...東西(與複選框綁定到外地請以你的桌子和IsSelected tblItems。)然後,你應該刷新與.Requery

2你的子窗體)使用RecordsetClone。這實際上是您的子窗體中顯示的記錄的副本,您可以循環和更新。

With Me.RecordSetClone 
    .MoveFirst 
    Do While .Eof = false 
     .Edit 
     .Fields("IsSelected") = FALSE 
     .Update 
     .MoveNext 
    Loop 
End With 
+0

當我使用記錄集選項我得到以下運行時錯誤7951:「您輸入有一個無效參考RecordsetClone屬性的表現。」我沒有太多的工作,所以我不知道如何解決它。我在上面的代碼中改變的唯一的事情是.IsSelect被更改爲我的字段名稱Select。 – Mouse

+0

我的錯誤。改用'.Fields(「IsSelected」)'。我將在主要答案中修復它 –

+0

它仍然給我同樣的錯誤。當我點擊調試時,它的第一行突出顯示。 – Mouse