我想在 MS Access 2003 中创建一个表单,让用户从任何现有查询中进行选择,然后让它在表单中显示结果(作为 DataSheet 视图中的子表单)。然后,用户将能够选择一个或多个记录并单击父表单上的按钮以根据选择执行某些操作。我希望它能够处理任何查询,限制很少,并显示查询的完整结果(所有列)。我可能有的唯一要求是它包含某些操作的某些字段。例如,如果我有一个“发送电子邮件”操作,查询将需要一个名为“电子邮件”的字段,或者可能是“收件人”和“主题”。
在运行时更改 DataSheet 子表单的 DataSource 不是问题,我在使用 VBA 之前已经这样做了。让显示的列发生变化是问题所在。
在 .NET WinForms 应用程序中,这可以通过 GridView 控件上的“自动生成列”来完成,或者直接在代码中使用 GridView.Columns 集合。在 VBA 中,我看不到从 DataSheet 视图中添加/删除列的方法。我也看不到根据查询自动生成它们的方法。看起来这些列是由放置在表单上的控件控制的(在表单视图中),虽然可以使用 VBA 添加/删除控件,但表单必须放在设计视图中并且需要对数据库的独占访问权限 - - 听起来很乱,我想避免独占访问部分。
我错过了什么吗?是否有捷径可寻?