【问题标题】:Updating an unshown field in a form based on another table's field根据另一个表的字段更新表单中未显示的字段
【发布时间】:2013-09-13 19:22:02
【问题描述】:

使用 Access 2010。自动化和宏相当新。

我有两个表格(tblProductReceivedtblBins)和一个表格(frmProductReceived)。

tblBins 中的字段对应于 bin 所在的位置(名为 BinLocationID),tblProductReceived 表跟踪特定 bin 收到的产品。

我需要的是tblProductReceived 字段PRLocationID ([tblProductReceived].[PRLocationID]) 在选择表单中的特定垃圾箱 (frmProductReceived) 时自动填充垃圾箱的位置 ([tblBins].[BinLocationID])。

有没有简单的方法可以做到这一点?我真的是宏/vba 的新手,我将非常感谢一些提示/建议!

此外,PRLocationID 字段的表单中没有对象。我希望它根据用户选择的 bin 编号字段在幕后进行更新 ([tbl.Bins].[BinID])

这里是 tblBins、tblProductReceived 和 frmProductReceived 的图片:http://imgur.com/a/0IUHm/(如果没有声誉,还不能发布图片)


看看这是我的结构:

tblProductReceived 是一个记录被放入垃圾箱的物品的表格。

tblBins 是包含字段 BinLocationID 的物理放置位置(箱)的列表

BinLocationID 实际上对应于另一个包含所有位置的表 (tblLocations)。

但我不能简单地将字段从 tblBins 链接到 tblProductReceived,因为迟早垃圾箱会从一个位置移动到另一个位置(无论原因是什么都不重要)。这就是为什么我需要将 [tblBins].[BinLocationID] 的副本复制到 [tblProductReceived].[PRLocationID] 的原因,因为如果 bin 移动,它会扰乱任何分析(因为我们想要跟踪产品被丢弃在垃圾箱的位置)。

另外,我设置的表单确实有下拉到各种箱([tblProductReceived] 中的 [PRBinID] -(我在 tblBins 上使用查找查询)但请记住,PRLocationID 中没有 txtBox字段,因为它是多余的。垃圾箱已经在位置,我所需要的只是将它复制到适当的表中。

我忽略了什么吗?

【问题讨论】:

  • 谢谢@rae1n。我是这些论坛的新手。
  • 请发布您尝试过或正在参考的代码,以便人们更好地参考您的问题。
  • 不用担心。我们通常不包括签名以保持问题更简洁并专注于内容。
  • @AdiInbar 我根本没有编写任何代码。我实际上不确定如何解决这个问题。我所拥有的只是创建的表单和两个表。
  • @AdiInbar 我已经更新了我的 OP 以包含指向表格和表单的链接。

标签: database ms-access macros vba


【解决方案1】:

经过几个小时的挑选,这是我想出的最优雅的解决方案:

在表单上,​​我有一个名为 txtPRLocationID 的隐藏 txtBox,其行源是 PRLocationID(在 tblLocations 中)

在 txtPRBinID 选择 bin 后,我在 Lose Focus 处编写了一个事件:

   'Private Sub txtPRBinID_LostFocus()'
   '[txtPRLocationID].Value = DLookup("[BinLocationID]", "tblBins", "BinID = " & Nz(Me!txtPRBinID.Value, 1))'
   'End Sub'

基本上它的作用是每次为 txtPRBinID 选择一个值并且用户继续前进(失去 txtBox 的焦点),为 tblBins.BinLocationID 发生 BinID 值的 DLookup 并更改 txtPRLocationID 文本框的值。

'Nz()' 是为了避免 Null 错误(根据 Google 搜索)。不确定是否需要,如果有人可以确认,请做!

感谢阅读!

【讨论】:

    猜你喜欢
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    相关资源
    最近更新 更多