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
Ms access 基于表单';在子表单上显示记录;s组合框选择(使用VBA)_Ms Access_Ms Access 2010 - Fatal编程技术网

Ms access 基于表单';在子表单上显示记录;s组合框选择(使用VBA)

Ms access 基于表单';在子表单上显示记录;s组合框选择(使用VBA),ms-access,ms-access-2010,Ms Access,Ms Access 2010,我有一个主窗体,它有一个我命名为FLRecCombo的组合框。这是最初设置的,以便在组合框中选择一个选项将移动到主窗体的记录源上的该记录 然后,我在主窗体上也有子窗体,在最初设置时,它将根据主窗体当前所在的任何记录源,使用公共字段移动到其记录源中的记录(即,可以使用组合框移动到所有子窗体上的给定记录) 注意这一切都是用过去式 我想向VBA中的FLRecComboAfterUpdate事件添加一些代码;不幸的是,这似乎切断了组合框、主窗体和子窗体之间的关系。我想可能是在FLRecComboAfte

我有一个主窗体,它有一个我命名为FLRecCombo的组合框。这是最初设置的,以便在组合框中选择一个选项将移动到主窗体的记录源上的该记录

然后,我在主窗体上也有子窗体,在最初设置时,它将根据主窗体当前所在的任何记录源,使用公共字段移动到其记录源中的记录(即,可以使用组合框移动到所有子窗体上的给定记录)

注意这一切都是用过去式

我想向VBA中的FLRecComboAfterUpdate事件添加一些代码;不幸的是,这似乎切断了组合框、主窗体和子窗体之间的关系。我想可能是在FLRecComboAfterUpdate事件中创建了一个宏,我通过代码生成器草率地编写了这个宏

我该如何恢复我最初的行为?我尝试了一种在这个网站上建议的方法;以下是对象引用:

  • 子表单名称:Finance\u FunderAllocation子表单
  • 子窗体记录源:财务_headlec_FunderAllocation
  • 要匹配的子窗体记录源字段名称:资金行
  • 要匹配的表单记录源字段名称:FundingLine
以下是我尝试的代码:

Private Sub FLRecCombo_AfterUpdate()
和我一起[Finance\u FunderAllocation子表单].Form.Recordset
.FindFirst“Funding Line=“&Me.FLRecCombo
以
端接头
但是Access调试器不喜欢这样,它说:

运行时错误“3077”:

表达式中出现语法错误(缺少运算符)

然后突出显示以开头的代码行。FindFirst

任何帮助都将不胜感激

应该是:

 .FindFirst "[Funding Line]=" & Me.FLRecCombo
或者,如果资金行是文本:

 .FindFirst "[Funding Line]='" & Me.FLRecCombo & "'"
您需要方括号,因为字段名中有空格。为了你自己,考虑删除表和字段名中的所有空格。

最后,您可以使用子窗体的链接子字段和主字段做很多事情,包括在不使用任何代码的情况下过滤子窗体的内容

 Link Master Fields: MyCombo
 Link Child Fields : [Funding Line]
应改为:

 .FindFirst "[Funding Line]=" & Me.FLRecCombo
或者,如果资金行是文本:

 .FindFirst "[Funding Line]='" & Me.FLRecCombo & "'"
您需要方括号,因为字段名中有空格。为了你自己,考虑删除表和字段名中的所有空格。

最后,您可以使用子窗体的链接子字段和主字段做很多事情,包括在不使用任何代码的情况下过滤子窗体的内容

 Link Master Fields: MyCombo
 Link Child Fields : [Funding Line]

非常感谢。我试过用方括号括起来,但得到了同样的结果。你给我的第二段代码清除了错误,因为它是一个文本字段。不幸的是,虽然错误消失了,但代码似乎没有移动子窗体上的记录。我已经查看了子窗体上的链接主字段和链接子字段。。。我觉得这些还可以(Master=FundingLine和Child=FundingLine。还有什么我可以尝试的吗?如果您在选择组合框中的每一行时,将链接主字段设置为组合框的名称,而不是字段名称,则子表单的内容将更改。感谢您对主/子属性的编辑;这就完成了。非常感谢。我已经用s尝试过了方括号,但得到了相同的结果。您给我的第二段代码清除了错误,因为它是一个文本字段。不幸的是,虽然错误消失了,但代码似乎没有移动子窗体上的记录。我已经查看了子窗体上的链接主字段和链接子字段……这些对我来说似乎没有问题(Master=FundingLine和Child=FundingLine。还有什么我可以尝试的吗?如果在选择组合框中的每一行时,将链接主字段设置为组合框的名称,而不是字段名称,则子表单的内容将更改。感谢您对主/子属性的编辑;这就完成了。