2010-01-14 97 views
0

我有一個窗體,顯示具有10個複選框的項目信息。通過「chkAudience10」將複選框命名爲「chkAudience1」,「chkAudience2」等。任何組合的框都可以從沒有到所有以及其間的任何東西進行檢查。從記錄集創建字段名稱

然後我有一個表格將複選框鏈接到項目。此表包含一個名爲ProjectID的字段和一個名爲AudienceID的字段(這兩個字段都被定義爲數字)。這使我可以選擇項目的所有受衆記錄。

問題是我想遍歷項目的記錄並檢查與表中記錄匹配的框。我當前的代碼看起來像:

sqlStmt = "SELECT * FROM ProjectAudience WHERE ProjectID = " & Me.ProjectID.Value 
Set rs = cn.Execute(sqlStmt) 
While Not rs.EOF 
    'Me.chkAudience1.Value = -1 
    x = "Me.chkAudience" & rs(1).Value 
    x.Value = -1 
    rs.MoveNext 
Wend 

x將被設置爲「Me.checkAudience1」,但接下來的生產線生產的「對象所需」的錯誤。如何根據記錄集數據創建字段名稱,然後使用該字段名稱來設置值。 (這是正在做的是微軟Access 2003中)

+0

什麼是「x」?你的代碼中沒有變量聲明 - 你放棄了嗎?如果沒有,那麼你真的需要在你的模塊中添加OPTION EXPLICIT,這樣你就不會偶然創建孤立變量。 – 2010-01-15 00:51:14

回答

1

正確的,而循環是:

雖然不是RS.EOF
       「Me.chkAudience1.Value = -1
        Me.Controls( 「chkAudience」 &(RS(1)。價值))。值= -1
        rs.MoveNext
Wend

關鍵是Me.Controls()。

+0

.Value屬性是多餘的,因爲它是記錄集字段和表單控件的默認屬性,所以「Me.Controls(」chkAudience「&(rs(1)))= -1」就是相同。 – 2010-01-15 00:52:57