Database 基于另一个表更新表单中未显示的字段';s场

Database 基于另一个表更新表单中未显示的字段';s场,database,ms-access,macros,vba,Database,Ms Access,Macros,Vba,使用Access 2010。对自动化和宏来说是相当新的 我有两个表(tblProductReceived和tblBins)和一个表单(frmProductReceived) tblBins中的字段对应于箱子所在的位置(名为BinLocationID),并且tblProductReceived表跟踪特定箱子接收到的产品 我需要的是在表单(frmProductReceived)中选择特定的仓位时,自动填充tblpProductReceived字段PRLocationID([tblpProductRe

使用Access 2010。对自动化和宏来说是相当新的

我有两个表(
tblProductReceived
tblBins
)和一个表单(
frmProductReceived

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

我需要的是在表单(
frmProductReceived
)中选择特定的仓位时,自动填充
tblpProductReceived
字段
PRLocationID
[tblpProductReceived].[PRLocationID]
)中仓位所在的位置(
[tblBins].[BinLocationID]

有没有一个简单的方法可以做到这一点?我对macros/vba非常陌生,如果您能给我一些提示/建议,我将不胜感激

另外,
PRLocationID
字段的表单中没有对象。我希望它能够根据用户选择的箱号字段在后台进行更新(
[tbl.Bins].[BinID]

以下是tblBins、tblProductReceived和frmProductReceived的图片:(没有声誉还不能发布图片)


看,这是我的结构:

tblProductReceived是一个记录存放到箱子中的项目的表

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

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

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

此外,我设置的表单确实有下拉到各种箱子的功能([tblProductReceived]-(我在tblBins上使用查找查询),但请记住,字段中没有用于PRLocationID的txtBox,因为它是多余的。箱子已经在某个位置,我所需要的只是将其复制到相应的表中


我忽略了什么吗?

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

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

在txtPRBinID处选择bin后,我在失去焦点处编写了一个事件脚本:

   'Private Sub txtPRBinID_LostFocus()'
   '[txtPRLocationID].Value = DLookup("[BinLocationID]", "tblBins", "BinID = " & Nz(Me!txtPRBinID.Value, 1))'
   'End Sub'
基本上,它所做的是每次为txtPRBinID选择一个值并且用户继续移动(失去txtBox的焦点),BinID值的tblBins.BinLocationID就会出现DLookup,并更改txtplocationid文本框的值

“Nz()”是为了避免空错误(根据谷歌搜索)。不确定是否有必要,如果有人能确认,请确认


感谢阅读!

谢谢@rae1n。我在这些论坛上完全是新手。请发布您尝试过或正在引用的代码,以便为您的问题提供更好的参考框架。别担心。我们通常不包括签名,以保持问题的清晰性并专注于内容。@adinibar我根本没有编写任何代码。我是ac实际上我不知道如何解决这个问题。我所拥有的只是创建的表单和两个表。@adInBar我已经更新了我的OP,添加了到表和表单的链接。