【发布时间】:2023-03-03 06:29:22
【问题描述】:
给定一个为表格的每条记录连续显示某些文本框的表单,我希望在每条记录的所有文本框(自动,而不是通过 VBA)填充了来自的数据之后执行 VBA 子当前记录。所以理想化的执行顺序是:
fetch next record from table
distribute values into text boxes and draw
execute VBA
fetch next record from table
我怎样才能做到这一点?
注意:形式是“连续的”(我不知道用访问术语怎么说),即。 e.一次显示所有记录,而不是一次显示一条记录,并带有前进/后退按钮。
注意 2: 我要做的是:我有一个表 F,其中包含另一个表 T 的字段名称。我的表单遍历F 的行。对于F 中列出的每个字段名称,我想打印出名称,并构建一个查询,该查询绘制一个直方图,显示来自T 的该列的数据。
【问题讨论】:
-
不够清楚你的意思是“将值分配到文本框中”。手动填充值?在任何情况下,您都可以在基本查询中添加一个计算列,该查询使用文本框字段中的参数调用 VBA 函数,在更改文本框中的数据后,它将为每个字段调用。
-
那是糟糕的数据库设计。字段名称不用于存储数据。如果您有一个表,其中包含另一个表中字段的字段名称,这清楚地表明您的数据未标准化并且您的设计需要调整。如果你不调整你的数据库设计,你就无法实现你想要的。相似的数据应该存储在同一个字段中,用另一个字段来区分数据的类型,而不是单独的字段。
-
@ErikvonAsmuth:一些可配置的数据库有表和字段的表,它是复杂信息环境中强大的数据管理工具。也不适合胆小的人!
-
@ErikvonAsmuth 数据库设计确实值得商榷,但不受我的影响。但是,我怀疑正确规范化的数据库是否能解决问题:给定一个带有附加列
attribute的表,您仍然需要遍历attribute的所有不同值并相应地填充直方图。 -
@Bubaya 那么您不必遍历它。您可以只使用包含所有记录的所有数据的记录源的图表,并使用 link master field 和 link child field 属性来获取正确的数据正确的记录。