Excel内部数据库连接

时间:2016-02-29 14:09:07

标签: excel excel-vba database-connection connection-string vba

我构建了一个数据条目UserForm来填充将用作原始数据库的工作表。原始数据需要进一步操作和分析才能进行报告,因此我使用获取外部数据>从Microsoft Query> Excel Files设置数据库连接,将其指向我正在使用的文件,选择我想要的字段和对我想要聚合的人执行了基本功能。这将创建一个Excel表格,然后我使用公式来完成分析。这对我很有效;我可以向数据库添加条目,刷新摘要表,添加新条目并自动填充公式。

问题是没有其他人可以刷新表,因为它在本地寻找文件。连接字符串是: DSN = Excel文件; DBQ = C:\ Users \ MyName \ Desktop \ Folder 1 \ Results.xlsm; DefaultDir = C:\ Users \ MyName \ Desktop \ Folder 1; DriverId = 1046; MaxBufferSize = 2048; PageTimeout = 5; < / p>

我对数据库连接有一个非常基本的了解,但我需要这个文件尽可能通过我的同事的请求自动化。我可以修复连接字符串,以便文件是&#34;灵活的&#34;并可以在任何计算机上刷新?这是最好的解决方案吗?如果没有,我还能做什么,不涉及下载额外的插件或第三方插件?

1 个答案:

答案 0 :(得分:1)

如果你需要的是一个包含原始数据(数据库)和一个或多个连接到它的excel文件的文件,它们从数据库中获取数据并处理这些数据,你需要分割这两个东西。您可以使用位于具有相应表的共享目录中的访问文件来创建数据库,并且可以在此文件中重现用户表单,以便在此文件中插入数据。然后你连接一个或多个excel文件(使用连接Mode = Share Deny None,这样你就可以更新数据,同时从excel文件中使用它们),数据将被导入到表格中的文件中,在这里你做你需要的所有工作。

如果一个文件对您来说足够了(您不需要将数据与行数据分开,并且您不需要同时使用来自不同位置的文件),所有问题都是如果文件是从与连接字符串中指定的位置不同的位置打开它不起作用......在这种情况下(似乎是这种情况)我不知道为什么要使用连接到同一文件。
如果您需要的是一个工作表,只需创建它选择已插入数据的范围(Create a table - quick start guide),然后通过表单添加数据而不是将它们添加到“正常”行,使用类似WorkSheets("name").ListObjects("table_name").ListRows.Add的内容将它们添加到表的新行,并将数据添加到新表行中。