将所有信息从打开的Access子窗体拉入excel

时间:2018-02-27 17:15:09

标签: excel excel-vba access vba

我们正在使用外部开发的访问前端。它显示一个包含大量数据点和一些子表单的表单。

我正在尝试编写一个excel表,该表将从当前打开的表单中的各个位置提取数据。

我已经能够使用以下代码访问主窗体中的所有数据点和子窗体中的第一行(在此示例中,“pnum”是显示的最左侧字段在子表单中):

Set objacc = GetObject("xxxxx\Database.accdb").Application

Debug.Print objacc.Forms("mainform").Controls("main subform").Controls("Pnumber") 

这样可以获得主子窗体中名为“Pnumber”的第一个元素的值。

然而,子公式的制定方式,它可以有1到30+“Pnumber”字段。

我需要一种方法来拉取当前可见(已滤除的)子表单包含的所有内容,而不管有多少行。

谢谢!

1 个答案:

答案 0 :(得分:0)

如果我是该Access应用程序的开发人员,并且您要求我提供此功能,我会为您编写API以自动获取正确的数据。

在这种特殊情况下,我能想到的一种方法是根据Excel VBA的请求填充一些临时表,并让Excel使用Access数据库文件作为外部数据源。或者可以编码Access以将正确的数据推送到打开的Excel工作表中。

通过该(子)表单的RecordsetClone属性,您可以最好地访问表单中当前状态(过滤,排序等)的数据。至少我想象的是我会用来实现这个功能。