使用MS Access在Web服务器中返回按需报告?
-
03-07-2019 - |
题
我构建了一个MS Access 2007应用程序,可以创建各种格式的报告文件(PDF,XLS,CSV,XML)。
我想允许从网页访问这些报告的创建,用户只需点击链接并下载我的Access应用程序生成的报告。
我想保持简单,我对这个阶段重写.Net中的数据处理不感兴趣。我只是想找到一种方法来自动创建用户报告以返回可以下载的文件 从本质上讲,我的Access应用程序将充当某种Web服务。
Web服务器是Windows 2003上的IIS。
欢迎提出任何指示或想法。我不熟悉IIS管理或ASP页面。
解决方案
我能想到的第一个快速而脏的方法是从shell调用Access并将其传递给一些参数以打开为只读并运行宏。
该宏必须从某个地方(可能是env变量)提取它的报告参数,运行报告并将其保存为Excel,PDF或其他任何名称。为此,您需要传递报告名称,唯一的请求ID和param数组来处理多个(或没有)参数。
最后但并非最不重要的是,您的Access宏/ VBA Sub需要关闭访问权限。
这不是一个很好的解决方案,因为尽管不建议每个请求启动一个Access副本。
另一种选择是在服务器上启动Access,其中VBA sub在打开时启动。此子点可以轮询目录以查找Web服务器写入的请求。然后在收到请求时运行报告并将其写入某处。同样,您必须以独特的请求ID为基础。
我不确定哪个“解决方案”会更好....作为批处理报告服务访问命令行报告生成器或Access。两者都是讨厌的,但是在你可以迁移到报告服务之前会让你超过驼峰。
其他提示
这是一种实现你所要求的方式。您可以使用免费版本的sql server express 2005或2008高级版,其中包括报告服务组件。使用报告生成工具,您可以将访问2007报告转换为SQL Server报告,并将这些报告从访问数据库中提取出来。如果你想要去那条路线,你也可以转到将数据库迁移到sql server的程度。报告服务将生成pdf,xls,csv和xml格式作为报告的输出,您只需将URL中的参数传递给服务器即可生成这些报告,服务器将以请求的格式返回报告。
链接到sql server 2008 express高级版:
如果您不想在.Net中重写,那么Classic ASP和VBScript怎么样? VBScript与VBA有很多共同之处,所以不需要花很长时间创建可用的东西,而且互联网上有很多ASP和VBScript可用的帮助。例如,一个简单的搜索返回了这种用ASP从Adobe创建PDF的方法: