将MS访问报告存储到SQL Server中



我使用MS Access、Excel和Power BI从不同来源生成报告。ETL、合并、筛选后的最终报告以.CSV和.XLSX格式导出到计算机中的特定文件夹中(我们将所有文件保存在windows 2016服务器文件夹中(。同时,我创建了SQL Server表来存储这些数据(只有表和列,但还没有存储任何数据(

是否有任何方法可以在每次生成新报告时自动上传数据并将其存储在SQL Server表中我需要将用于历史目的的日报/周报保存在一个表中。

也许我需要使用一些ETL自动化工具?Python脚本?

这个过程没有意义吗?

您不保存报告的结果。报表基于对数据库的查询。因此,对于报告,您只需执行一个具有日期范围或条件的查询。

这样,您今天可能会运行该报告1次或10次。每次运行此报表时,它都会访问数据库并提取数据。如果您为今天的数据运行报告1次或10次,结果不会改变。如果从现在起的3个月内,您使用今天的日期范围运行报告,那么它应该会生成相同的报告。

在任何"合理"的数据系统中,试图保存报告结果的想法都毫无意义。我可以假设您生成报告并将其保存为PDF,但出于什么可能的原因,您在任何时候都不能按照以前的标准重新运行报告,从而随时重新创建报告?

你似乎采取了某种电子表格的方法。将数据输入Excel,然后打印出来。所以,现在你每天都保存一整份电子表格,随着时间的推移,这些数据与以前的数据无关。

这种Excel类型的方法不是数据库系统的工作方式,也不是任何具有报告能力的系统在这里取得成功的方式。

您可以从Access将"摘要"数据保存/放入最终数据库。到那时,您可以/应该能够在Access中随心所欲地生成报告(数据将来自sql server的最终安息地。

因此,这里的目标和想法是根据最终数据集生成一个报告。

所以,也许你的问题是,我如何将Access中的一些摘要数据发送到最终数据库中?然后我可以自由地在任何时候随意地重复报告。报告只能运行一次的想法,就是这样吗?这将如何在任何生产系统中发挥作用?

因此,您需要首先将数据发送到最终数据库。(如果这是用一堆代码和处理生成的汇总数据,那就好了(。

一旦您将数据(也许是摘要数据(发送到最终数据库?当然,你应该能够在任何时候"按需"运行报告。

无论您是运行该报告1次还是20次,或者在一个月内再运行该报告3次,都应该无关紧要。该报告将有某种类型的标准来限制流入该报告的数据。无论您将来重新运行tat报告的次数和时间,结果都应该是一样的。

如果你在问,你能简单地将数据从Access发送到SQL server吗?当然,但数据的发送肯定不能与运行报告1次或10次的时间挂钩。多用户系统上的用户如何同时运行报告,甚至重新运行报告?

因此,将摘要数据或新数据发送到sql server的过程必须与允许您针对最终数据库系统运行报告的过程分开。

您可以在Access中轻松地运行报告,该报告从最终的休息位置(我认为是SQL服务器?(提取数据。但是,将数据发送到sql server的过程需要与运行此类报告的"事件"分开,否则很难使该系统正常工作。如果你需要或想要,或者碰巧有人重新运行报告,会发生什么?不能让报表将数据发送到SQL数据库。ETL过程必须与生成报告的事件分开。

如果您的进程创建了摘要数据(比如到一些本地Access表中(,那么您可以简单地使用从访问到sql数据库中的链接表的追加查询。因此,在ETL过程之后,您在Access中运行一些附加查询,这些查询获取本地数据并将其发送到SQL服务器。

最新更新