2016-02-29 90 views
3

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

的问题是,没有人可以刷新表,因为它是在本地查找的文件。连接字符串是: DSN = Excel文件; DBQ = C:\用户\ MYNAME \桌面\文件夹1 \ Results.xlsm; DEFAULTDIR = C:\用户\ MYNAME \桌面\文件夹1; DriverId = 1046; MAXBUFFERSIZE = 2048 ;将PageTimeout = 5;

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

+0

你有一个实际的数据库连接到?因为拥有本地机器上的所有内容不是一个好主意。 – durbnpoisn

+0

“数据库”只是同一个Excel文件中的工作表。 – 406LQE

+3

您必须将原始数据分离为独立的网络可访问工作簿,然后将“工作”电子表格与用户表单连接到公共“数据库”。 – PeterT

回答

1

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

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

+0

这很拖延,所以我很抱歉。你的第二个建议是一个好主意,我想如果我改进了UserForm中的VBA,我可以管理它,但是目前我必须使用SQL转换原始数据以提供汇总表,这就是为什么我要设置数据库连接到原始数据。 – 406LQE