【问题标题】:Create a field name from a recordset从记录集中创建字段名称
【发布时间】:2010-01-14 14:45:55
【问题描述】:

我有一个显示项目信息的表单,该项目有 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”,但下一行会产生“需要对象”错误。如何根据记录集数据创建字段名称,然后使用该字段名称设置值。 (正在做的是 Microsoft Access 2003)

【问题讨论】:

  • 什么是“x”?你的代码中没有变量声明——你把它省略了吗?如果没有,那么您确实需要将 OPTION EXPLICIT 添加到您的模块中,这样您就不会意外创建孤立变量。

标签: ms-access concatenation recordset


【解决方案1】:

正确的while循环是:

虽然不是 rs.EOF
'Me.chkAudience1.Value = -1
Me.Controls("chkAudience" & (rs(1).Value)).Value = -1
rs.MoveNext
温德

关键是 Me.Controls()。

【讨论】:

  • .Value 属性是多余的,因为它是记录集字段和表单控件的默认属性,因此,"Me.Controls("chkAudience" & (rs(1))) = -1" 完全一样。
猜你喜欢
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多