自动部署 MS Access 应用程序






4.20/5 (2投票s)
使用 .Net 应用程序自动执行 MS-Access 应用程序
引言
MS-Access 是开发小型用户应用程序最喜欢的工具之一,因为一个数据库文件可以包含任何应用程序所需的所有内容(数据表、窗体、查询、报表等...),维护成本也很低。
与其他应用程序一样,MS-Access 应用程序也需要进行更改。在通常情况下,为了使更改在生产环境中可用,我们必须将所有修改过的对象(窗体、查询、报表等)从开发副本复制到生产环境。这个过程可能很费力、容易出错,甚至很耗时。本文介绍如何自动执行部署过程,从而使生活更轻松,部署更快。
使用代码
帮助链接 https://msdn.microsoft.com/en-us/library/office/ff196455.aspx
Application app = new Microsoft.Office.Interop.Access.Application();
app.OpenCurrentDatabase(@"C:\TransferDemo\Database1.accdb", false);
就这样! 我们完成了。 一旦打开源数据库,我们只需要使用 DoCmd.TransferDatabase() 方法来传输所需的对象。 在本文中,我仅使用了一个名为“frm_Registration”的窗体。
app.DoCmd.TransferDatabase(AcDataTransferType.acExport, "Microsoft Access", @"C:\TransferDemo\Database2.accdb", AcObjectType.acForm, "frm_Registration", "frm_Registration");
其次,指定目标应用程序是什么。 在这种情况下,它是 MS Access,因此提到了这一点。
第三个参数是我们的目标 MS Access DB 的路径。
第四个参数指定正在传输到目标的对象的类型,在我们的例子中,因为我们只复制窗体,所以提到了这一点。 Access 允许我们复制其他对象,例如查询、报表、表等...
接下来的两个参数是我们想要复制的对象的名称以及我们希望它在目标文件中的名称。 本文中未使用最后两个参数。
传输完成后,作为一种好的做法,必须关闭打开的数据库文件。 以下代码行执行此操作。
app.CloseCurrentDatabase();
就这样! 我们有一个代码可以将所需的对象从一个 .accdb 文件复制到另一个。 这里的优点是,即使要复制的对象已经存在于目标数据库中,我们也不必担心,TransferDatabase 方法会将它覆盖在目标数据库上。
结论
作为此应用程序的输入,所有需要的是要传输的对象及其类型的列表。 有多种方法可以实现这一点,创建文本文件、excel 表格,甚至创建一个 UI,该 UI 将列出源 DB 文件中的所有对象,然后提供一个功能来选择需要传输的对象。