【问题标题】:VBA reference a field on form that has a dot in its nameVBA 引用表单上名称中带有点的字段
【发布时间】:2013-09-25 16:02:35
【问题描述】:

我正在处理一个 Access 2010 项目,我创建了一个表单并正在使用 if 语句来启用/禁用字段。

我使用的代码是,

DueDate.Enabled = False

除了一个名为“tblJobs.Engineer”的组合框外,这一切正常。我无法重命名此字段,但我认为问题在于其中的点,因为我需要错误对象。

我尝试将Forms!frmJobs! 添加到开头,但仍然出现相同的错误。

【问题讨论】:

  • 是的,您可以重命名“字段”(它实际上是一个对象,而不是字段,但这是另一个问题...),您应该 b> 重命名“字段”。标准 Access 编码实践是永远不要在表字段名称中使用点或空格,并且您应该遵循相同的对象准则。它将消除使用括号的需要,这是一种米老鼠解决方案,可以解决糟糕的编码选择。

标签: ms-access vba field


【解决方案1】:

将问题名称括起来,以便将其识别为一个“事物”。

[tblJobs.Engineer].Enabled = False

【讨论】:

    【解决方案2】:

    你已经得到了一些很好的意见,但我只是想澄清一下。

    1) 不要在字段、表格、表单或查询的名称中使用空格、符号或标点符号。

    2) 考虑重命名表单上的控件,以便它们的名称与它们绑定到的基础 DAO 记录集字段不同。这样,如下图所示,您可以选择分别引用字段或控件,而不会对程序员或 MS Access 造成任何混淆。

    'Refer to a combo
    Me.cboEngineer.Enabled = False
    
    'Refer to a textbox
    Me.txtDueDate.Enabled = False
    
    'Refer to an underlying DAO Recordset field (early binding)
    Me.Engineer = "Donald"
    
    'Refer to an underlying DAO Recordset field (late binding)
    Me!Engineer = "Donald"
    

    【讨论】:

      猜你喜欢
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 2018-02-25
      • 2018-01-20
      相关资源
      最近更新 更多