2012-09-26 44 views
2

我一直在搜寻有关如何在ACCDB中添加和查询Excel VBA中的数据的信息。我遇到了很多答案:来自同事的OpenDatabase(),数据库连接以及使用Access.Application对象。我无法弄清楚的是,使用Access对象而不是使用字符串等来创建与数据库的连接会有好处吗?我没有读过使用Access应用程序对象,我不需要在运行VBA的计算机上安装Access引擎,并且我选择这样做。另外,它看起来比使用连接字符串和走这条路线要简单得多。我已经实现了访问对象,它的工作就像一个魅力。所以我的问题是,做访问对象的方式与做另一种方式有什么区别?谢谢大家!使用Access.Application对象与数据库连接之间的区别

+2

我会使用DAO而不是应用程序对象。 MS Access的DAO速度要快得多。一个应用程序对象只是耗尽内存而没有任何理由。 DAO几乎与应用程序对象一样简单。 – Fionnuala

+0

你有你的想法一点点错误的方式。如果您使用连接字符串或DAO,则不需要完整版本的MS Access,如果您使用应用程序对象,则您正在运行完整版本。当打开应用程序时将代码设置为运行,以及仅在安装MS Access时运行时,它可能会导致问题。 – Fionnuala

+0

因此,DAO比应用程序对象更快,更简单,使用的内存更少,并且不需要应用程序。一个对象可以使用函数。这是我的任务:我将CSV(或清理过的XLSX)文件导入到ACCDB中,将单独的数据导入到不同的表中,查询数据并导出另一个与之一起使用的XLSX。这听起来更好吗?数据库现在并不是很大,但它每周会增加大约10k条记录。 – frodoid

回答

0

数据库中的10k增量增加或CSV输入增加10K?

如果是前者,那么存储在数据库中是一个好主意,我会使用DAO路由。您会注意到,启动Access应用程序的人并不多,主要是因为您没有真正使用Ms Access功能(它不仅仅是数据存储)。

作为替代方案,跳过Excel并将您的宏放入Access中,因为您拥有该应用程序。 Access中有许多好东西,您可以利用。

但是,如果您的CSV始终处于满量状态,您可能只想在Excel/VBA中自行处理数据。我假设“其他”表是参考表。

相关问题