Excel中的内存数据库

我正在寻找一种方法来从Access导入数据表格到Excelvariables中,然后通过这个variables运行查询来加速这个过程。 我正在尝试从C#.NET迁移,我从一个访问数据库中读取数据表到内存中,然后使用LINQ来查询这个数据集。 这比我目前在VBA编写的代码要快得多,因为我必须对实际的数据库进行大量的调用,而这种调用很慢。 我已经看到了提到的QueryTable,但是这似乎要求将数据粘贴到Excel表格中。 我想将所有内容都放在内存中,并尽可能地减lessExcel表格和VBA代码之间的交互。

我希望我们不需要使用Excel + VBA来做到这一点,但现在我们仍然坚持这样做。 谢谢您的帮助!

我只是将它读入ADOlogging集,然后根据需要从logging集中获取所需的数据。 当然这将取决于你想读取的表的大小。

我不知道任何像LINQ for VBA的东西。

如果您通过将ADO连接选项设置为“公开”来保持范围,则可以对其执行“忽略命令”。 它并不像LINQ那么快,但它比为每个调用创build和销毁Connection对象都快。

如果表格不是太大,我倾向于将表格读入VBA中的自定义类,并设置适当的父/子关系。 这个非常明显的缺点是你不能使用SQL从你的类中获取数据的logging集。 当我需要多个特定logging时,我必须使用很多循环。 这意味着如果您有1百万条logging,那么调用数据库会更快。

如果你对最后一个感兴趣,你可以阅读我写在这里的一些东西:http://www.dailydoseofexcel.com/archives/2008/12/07/vba-framework/

http://www.dailydoseofexcel.com/archives/2008/11/15/creating-classes-from-access-tables/

http://www.dailydoseofexcel.com/archives/2007/12/28/terminating-dependent-classes/ (阅读Rob Bruce的评论)