Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba MS Access从列表框中检索/设置.Value,查询作为行源_Vba_Ms Access_Listbox - Fatal编程技术网

Vba MS Access从列表框中检索/设置.Value,查询作为行源

Vba MS Access从列表框中检索/设置.Value,查询作为行源,vba,ms-access,listbox,Vba,Ms Access,Listbox,我在尝试检索和/或向以Select查询作为行源的列表框赋值时遇到了完全的困难。以下是设置: 我有一个提交产品退货的表格,frmIssueRMA,它与tblRMA相关。有一个部分,用户可以从组合框中键入/选择SerialNumber,它是另一个表tblUnits中的数据。一旦做出选择,它将启动一系列AfterUpdate事件,这些事件将重新查询列表框,这些列表框显示各种其他表中的单元详细信息。这在很大程度上只是提供信息,字段锁定仅用于显示目的。然而,有一个这样的字段,我确实需要检索它的值,以便以后

我在尝试检索和/或向以Select查询作为行源的列表框赋值时遇到了完全的困难。以下是设置:

我有一个提交产品退货的表格,
frmIssueRMA
,它与
tblRMA
相关。有一个部分,用户可以从组合框中键入/选择
SerialNumber
,它是另一个表tblUnits中的数据。一旦做出选择,它将启动一系列
AfterUpdate
事件,这些事件将重新查询列表框,这些列表框显示各种其他表中的单元详细信息。这在很大程度上只是提供信息,字段锁定仅用于显示目的。然而,有一个这样的字段,我确实需要检索它的值,以便以后使用,但我似乎无法完成

该字段为
txtmassembly
,其行源为:

 SELECT tblUnits.PartNumber 
 FROM tblUnits 
 WHERE (((tblUnits.SerialNumber)=[TempVars]![SerialNumber]));
(临时变量
SerialNumber
cboSerialNumber
AfterUpdate
事件的一部分,如果它重要的话)

它正确地显示了正确的零件号,但我似乎无法使用它。例如,我使用
TempVars.Add“Assembly”、Me.txtsassembly.Value对字段本身尝试了
AfterUpdate
事件。这似乎不起作用,因为实际上没有输入该字段,所以我将该行添加到VBA中,用于
cboSerialNumber
更新后
事件
Me.txtsassembly.Requery
。这也不起作用。在我看来,这意味着即使在它成功查询之后,它也没有创建(或实际上没有)一个值

我曾尝试使用
DLookUp
,但这似乎也不起作用。我甚至尝试使用
=[txtsassembly].[value]和=[txtsassembly].[Text]
将该值拉到另一个文本框中。我知道这很傻,但那是万岁


我非常感谢您提供的关于如何获取/检索/引用列表框中重新查询后显示的零件号的任何提示或建议。我希望我提供了足够的细节,但如果我能澄清或扩展任何内容,请让我知道

如果您转到即时窗口(
Ctrl+G
)并键入
MsgBox表单!frmIssueRMA.txtsassembly.Value
你得到了什么?如果我只是在表单中输入!frmIssueRMA.txtAssembly.Value它返回Null,即使框中显示零件号。How/where是“[TempVars]”![SerialNumber]”已创建-类模块?为了证实这一点,我相信您的意思是,在从组合框中选择序列号后,将运行事件来填充名为“txtsassembly”的列表框?您可以在列表框中看到值,但无法访问它?Wayne,没错。在序列号组合框中进行选择时,会触发更新后的VBA代码,该代码会重新查询多个列表框,并根据选择添加临时变量SerialNumber您使用类模块访问序列号而不是仅从列表框中获取所选条目的原因是什么?如果您发布代码,我可以提供一些调试/解决问题的建议。如果您转到即时窗口(
Ctrl+G
)并键入
MsgBox表单!frmIssueRMA.txtsassembly.Value
你得到了什么?如果我只是在表单中输入!frmIssueRMA.txtAssembly.Value它返回Null,即使框中显示零件号。How/where是“[TempVars]”![SerialNumber]”已创建-类模块?为了证实这一点,我相信您的意思是,在从组合框中选择序列号后,将运行事件来填充名为“txtsassembly”的列表框?您可以在列表框中看到值,但无法访问它?Wayne,没错。在序列号组合框中进行选择时,会触发更新后的VBA代码,该代码会重新查询多个列表框,并根据选择添加临时变量SerialNumber您使用类模块访问序列号而不是仅从列表框中获取所选条目的原因是什么?如果您发布代码,我可以提供一些调试/解决问题的建议。如果您转到即时窗口(
Ctrl+G
)并键入
MsgBox表单!frmIssueRMA.txtsassembly.Value
你得到了什么?如果我只是在表单中输入!frmIssueRMA.txtAssembly.Value它返回Null,即使框中显示零件号。How/where是“[TempVars]”![SerialNumber]”已创建-类模块?为了证实这一点,我相信您的意思是,在从组合框中选择序列号后,将运行事件来填充名为“txtsassembly”的列表框?您可以在列表框中看到值,但无法访问它?Wayne,没错。在序列号组合框中进行选择时,会触发更新后的VBA代码,该代码会重新查询多个列表框,并根据选择添加临时变量SerialNumber您使用类模块访问序列号而不是仅从列表框中获取所选条目的原因是什么?如果您发布代码,我可以提供一些调试/解决问题的建议。