【问题标题】:How can I get the ID of a record when it isn't mentioned on a form in Access 2007 via VBA?当通过 VBA 在 Access 2007 中的表单上未提及记录的 ID 时,如何获取该记录的 ID?
【发布时间】:2012-10-24 22:56:55
【问题描述】:

我有一个多项目表单,其中没有提及记录的 ID。每行都有一个按钮,单击该按钮会打开一个包含更多详细信息的新表单。

过去,我为 ID 添加了一个字段,但使其不可见,但这似乎很愚蠢 - ID 是原始查询的唯一字段,所以我应该能够以某种方式纯粹使用代码进行访问。

有人知道怎么做吗?如果您需要更多说明,请告诉我。

更新

对我来说最快的方法是在表单中为查询中的字段添加一个字段,将其称为查询字段名称,将其全部保存并关闭,然后删除该字段。当然,我宁愿只做 Me.ID 而没有任何之前的废话。

【问题讨论】:

  • 编译错误:找不到方法或数据成员。所以它根本不承认它的存在。
  • 在某些情况下,您可能必须引用 Me!ID,而不是 Me.ID,因为该字段尚未添加为表单的属性(讨论:tek-tips.com/viewthread.cfm?qid=1127364
  • @Remou 就是这样,谢谢!继续添加它作为答案,我会给你支票。

标签: database forms ms-access vba ms-access-2007


【解决方案1】:

您可能需要编辑记录源/查询......并将该列添加为可用字段。

【讨论】:

  • 对不起,如果我不够明确,ID 已经是原始查询的一部分。
【解决方案2】:

如果表单的记录源包含一个名为“ID”的字段,您可以访问该字段的值作为表单的属性:

Debug.Print Me.ID

这在没有控件绑定到该字段的情况下工作。

【讨论】:

  • 我可以使用 Me._____ 访问一些未包含的字段,但是当我创建一个新字段时它不起作用。看来您需要在表单上使用该字段,即使您停止使用该字段,Me._________ 仍然有效。我会继续玩这个以得出结论。
  • "当我创建一个新的时它不起作用" 创建一个新的什么?我不明白你在说什么。我刚刚在 Access 2007 中创建了一个新表单,其记录源是一个查询,其中包含一个名为“id”的字段,并且该字段不用作我的任何表单控件的控制源。我仍然可以使用Me.id 检索当前行的字段值
  • 抱歉,我会澄清一下 - 当我在原始查询上创建一个新字段并尝试在我的 VBA 代码中使用时,我无法做到。
  • 我只是为一个全新的表单这样做了。我首先在记录源查询中创建了没有“id”的它,然后修改了查询以包含“id”,并且Me.id 在没有绑定到“id”的控件的情况下工作。如果它仍然不适合您,请保存修改后的表单,将其关闭并重新打开。
  • 我无法解释为什么它对你的工作方式与对我不同。我测试了 MDB 和 ACCDB 格式的 db 文件。如果您尚未安装 Office 2007 的 SP3,请安装。然后我会尝试一个带有简单表、查询和表单的新数据库文件。如果您安装了 Access,请尝试另一台机器。
【解决方案3】:

在某些情况下,您可能必须引用 Me!ID,而不是 Me.ID,因为该字段尚未添加为表单的属性(讨论:http://tek-tips.com/viewthread.cfm?qid=1127364

当您将 ID 添加为控件然后将其删除时,它会成为表单的属性,这就是您的解决方法有效的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    相关资源
    最近更新 更多