0

由于我需要为我的客户更新我的 Adp 文件,我在我的 adp 项目中添加了一个新的元数据属性,该属性是通过 access 2003 来显示的,它显示了我的 adp 文件的版本。我已经使用这篇文章来建立这个元数据,幸运的是,它运行良好。

https://www.pcreview.co.uk/threads/accessing-custom-properties-for-an-adp-file.2921635/

但实际上,问题是如何从 C# 项目中读取这个 adp 项目元数据属性?然后我将开始我的更新过程

我已经尝试过这篇文章中的解决方案,但它不起作用,因为容器函数没有名称和所有者属性!

如何从 C# 程序修改 MS Access 数据库属性集合(不是数据!)?

如果有人知道实际的解决方案,请在此处回复。

我的第二个问题是,如果 adp 项目有 Visual basic lock 来保护查看源代码,C# 项目会发生什么?是否仍然可以读取元数据属性或不!?

我正在使用 Windows 10-64 位、Access 2003 和 Visual Studio 2013

4

1 回答 1

0

经过大量的寻找,我找到了解决方案,我想为那些将来可能需要它的人提一下。

这是您应该在 C# 源代码中添加的代码。

        using Access = Microsoft.Office.Interop.Access;

        private void button1_Click(object sender, EventArgs e)
    {

       Access.Application oAccess = new Access.Application();
       oAccess.OpenCurrentDatabase(@"C:\test\test.adp", false);
       var Version = oAccess.Run("GetMyVersion");//Name of procedure in Access module
       MessageBox.Show(Version.ToString());
       oAccess.CloseCurrentDatabase();


        foreach (Process Proc in Process.GetProcesses())
        if (Proc.ProcessName.Equals("MSACCESS"))  
        Proc.Kill();
    }

注意:您必须将平台配置从任何 CPU 更改为 X86。

很明显,您的 Adp 项目中应该有一个“GetMyVersion”函数来返回版本的值。即使您锁定了您的 Adp 项目,此代码也可以方便地使用。

祝你好运!

于 2019-04-15T04:44:08.733 回答