缩短故事时间:
我是一个Access noob,将大量Excel电子表格快速转换为Access数据库 . 部分要求是模仿Excel的某些功能,特别是从某个表中提取数据并对其进行一些基本计算(总和,平均值等) .
我已经准备好将这些查询放到(子)表单中,但是,我不知道如何自动将表单中的框中的参数传递到子表单中 .
我编写的每个查询都使用手动输入的名为"MATCHNAME,"的参数,该参数包含个人的姓名 . 在手动测试中,如果我在一个查询中输入此参数,则它调用的所有查询也会获得该值 . 所以,我想我只需要弄清楚如何告诉顶级查询MATCHNAME实际上是什么,并且它会照顾它 .
问题是,我不知道在Access中如何做到这一点 . 如果它是任何其他编程语言,我会做类似“queryXYZ(MATCHNAME);”的内容,但我不认为我可以在Access中执行此操作 . 另外,由于queryXYZ返回的值都是计算的,我不知道如何添加额外的MATCHNAME字段,也不确定如何确保查询读取,也不确定如何通过链传递 . 我甚至尝试在设计视图中创建参数,然后尝试设置链接主字段,但参数不会出现在该窗口中 .
我还想在每次提取新记录时重新运行这些查询,但我不知道该怎么做 - 即,对于我正在查看的任何记录,数字应该是最新的 .
而且,在我们去那里之前 - 我觉得关系是不可能的,因为数据本身是自动生成的,并且形状足够粗糙到我可以分配数字键的位置 . 但是,我对Access中的关系知之甚少,所以请证明我错了 .
(这一切都有意义吗?)
您对我有什么建议 - 如何让子窗体读取主窗体上的字段来运行其查询?或者,是否有更简单的方法来执行此操作,即在表单内部进行SQL调用?
非常感谢您的帮助...
1 回答
您可以在属性选项卡中使用SQL作为子窗体的记录源,并使用matchname字段的afterupdate事件来更改
yourform.recordsource = "Select * from table where filteredfieldname = & me.matchname & ";"
. 您还可以使用sql作为表单字段的控件源 . 要使用整个表作为记录源来传递条件来过滤子表单,请在事件更新后的事件中添加一个事件过程,如下所示或者您可以将Matchname放入子窗体的sql记录源中,并在当前和更新后的事件上将函数字段添加到子窗体上
如果要将总和等存储在表中,则需要执行一些不同的操作,因为控件controlource绑定到字段 .