VBA 使用变量表名设置记录

Posted

技术标签:

【中文标题】VBA 使用变量表名设置记录【英文标题】:VBA Set Recordet using a variable table name 【发布时间】:2012-03-06 15:03:06 【问题描述】:

我正在尝试从一个调用函数访问表单的记录集克隆,我们使用该函数实质上将记录集中的数据转储到我们正在创建的表中。我试图从 Forms 集合中调用表单,但我不知道如何将表单名称(保存在传递给函数的字符串中)插入到 set 语句的中间。基本上是这样的:

Public Function EditFormData(frmName As String)
  Dim strSQL As String
  Dim strTableName As String
  Dim rst As DAO.Recordset
  Dim i As Integer

  Set rst = Forms![[[frmName]]].RecordsetClone

我在这里有点茫然。对于这个特定的函数,我可以将记录集传递给函数,但我在另一个地方也有类似的困惑,传递一个不是一种选择。想法?

【问题讨论】:

【参考方案1】:

试试这个:

Set rst = Forms(frmName).RecordsetClone

【讨论】:

+1 我一般用表单名,不过也可以传表单本身EditFormData(frm As Form) 好点。那么 set 语句将是:Set rst = frm.RecordsetClone 没错。两者都有效,我觉得自己像个白痴。非常感谢,我会在允许时标记为答案。

以上是关于VBA 使用变量表名设置记录的主要内容,如果未能解决你的问题,请参考以下文章

通过 VBA 设置表单的记录集也是设置其记录源

对象变量或块变量未设置访问vba [重复]

如何使用 Access VBA 将具有默认值的未绑定文本框的值设置为空字符串

VBA输入框-取消和变量设置

如何在access vba中的记录集中设置列值

有时在 Outlook VBA 中获取“对象变量或未设置块变量”