我正在MS Access 2007中构建一个Access数据库应用程序,该应用程序本质上是一个数据收集工具,需要将其分发到各个站点进行填写。在站点填写了所有必要的记录之后,他们将返回该工具,我需要将来自各个站点的所有数据合并到一个数据库中进行分析。我有2个表和3个表单,后面带有一堆自定义VBA代码,用于数据验证,清理和流程。

我有一个摘要表单,其中显示了当前输入的所有记录。然后,用户可以使用“摘要”表单上的按钮添加一条记录,这会启动一个数据输入表单(我们称其为“数据输入表单#1”)。在数据输入表单#1中,可以启动另一个表单(数据输入表单#2),用于输入有关在数据输入表单#1中填写的记录的子记录。在表级别强制执行参照完整性。

从汇总表到数据输入表#1和数据输入表#2的流程对于数据的完整性很重要。我已经在VBA中明确规定了此流程,并将指示用户始终从摘要表单开始。

在那漫长的背景之后,我的问题.....

我有什么不同的选择,以及将这个应用程序部署到我的各个站点的选择的相对优点/缺点。我的基本要求是:


理想情况下,用户永远不会看到存储数据的表。
“摘要”表单在打开时将启动,他们无法直接打开任何其他表单。
关闭“摘要”表单将关闭应用程序。
由于有一堆指示重要功能的VBA代码,如果他们不接受安全警告,他们将无法访问任何表格或使用该工具
我可以轻松地编写每个工具从两个表中提取/导出数据的脚本


我隐约知道以下选项:
-将完整的ACCDB文件分发到站点
-创建AACDE文件并将其分发到站点
-使用Access Developer Extensions“打包”应用程序-创建和EXE文件?

我还读到,如果用户没有Access 2007或更高版本,则他们可以下载MS Access运行时服务,并且能够使用我的应用程序,而不必购买/安装完整版本的MS Access。有人可以确认吗?这是否适用于所有上述内容(ACCDB,ACCDE,EXE)?是否存在严格的数据输入角色无法提供的任何功能?

谢谢!

最佳答案

您应该能够使用access中设置的选项以及一些代码来完成大多数操作。


创建帐户;
使用该地址,在选项中,取消选中显示导航窗格(或类似的东西);还应该有一个选项来禁用Shift键。
将startform设置为摘要表单
关闭摘要表单将关闭应用程序:在摘要表单的设计视图中(在accdb中,在执行其余操作之前),创建一个form_unload事件;在这种情况下

退出命令


一个更大的问题可能是,所有站点是否都具有ms office的必需组件才能运行Access 2007,或者是否还需要提供Access 2007运行时,但是我不打算这样做。如果您需要这样做,则最好再问一个问题或寻找现有的答案。

希望这可以帮助

10-01 00:19
查看更多