2014-01-29 56 views
0

我想創建一個窗體,其中根據另一個表的記錄動態創建複選框。動態複選框MS Access 2013

實施例:

Source Table content: 
ID  Name 
1  ABC 
2  DEF 
3  GHI 
4  JKL 

我想,該形式將生成上裝載4 checkboxes

如何實現這個?

回答

2

完成此操作的一種方法是使用子窗體。假設主窗體名爲[frmTest]。創建一個名爲[frmTest_CheckBoxItems]具有以下字段的表:

[Seq]: Long Integer, Primary Key 
[Description]: Text(255) 
[Selected]: Yes/No 

然後,你可以添加一個連續窗體子窗體爲[frmTest]包含[選擇](複選框)和[說明](文本框)領域。

Form Load事件的主要形式的[frmTest]你可以從[sourceTable會]與代碼加載值代入[frmTest_CheckBoxItems]表是這樣的:

Option Compare Database 
Option Explicit 

Private Sub Form_Load() 
    ReloadCheckBoxItems 
End Sub 

Private Sub ReloadCheckBoxItems() 
    Dim cdb As DAO.Database 
    Set cdb = CurrentDb 
    cdb.Execute _ 
      "DELETE FROM frmTest_CheckBoxItems", _ 
      dbFailOnError 
    cdb.Execute _ 
      "INSERT INTO frmTest_CheckBoxItems (Seq, Description) " & _ 
      "SELECT ID, [Name] FROM SourceTable", _ 
      dbFailOnError 
    Set cdb = Nothing 
    Me.frmTest_CheckBoxItems_subform.Requery 
End Sub 

隨着位調整到的子窗體(隱藏記錄選擇器,導航按鈕,邊框,背景顏色的,等等),你的佈局格式...

DesignView.png

...在[sourceTable會]數據相結合...

ID Name 
-- ---- 
1 ABC 
2 DEF 
3 GHI 
4 JKL 

應該是這樣的:

FormView1.png

添加另一行[sourceTable會] ...

ID Name 
-- ---- 
1 ABC 
2 DEF 
3 GHI 
4 JKL 
5 AAA 

...你開下一次[frmTest]你會得到

FormView2.png