如何通过 C# 获取 Microsoft Access 数据库应用程序标题

问题描述 投票:0回答:3

我需要通过 C# 从 Access 数据库获取应用程序标题。我见过一些使用 Office VBA 的示例:即:https://learn.microsoft.com/en-us/office/vba/api/access.application.apptitle

问题是我没有对类库的引用来访问 Application.AppTitle 属性。我尝试了一些参考资料,最值得注意的是:

using Microsoft.Office.Interop.Access.Dao

但我无法通过任何属性访问Application.AppTitle。例如:

  var dbe = new Microsoft.Office.Interop.Access.Dao.DBEngine();
        var db = dbe.OpenDatabase(@"c:\\Sample.mdb");

        // Show database properties
       // db.Properties. "When I expand this there is no AppTitle"

是否有人有任何其他方法可以帮助他们通过 C# 访问 MS Access AppTitle?

提前致谢!

伊恩

c# visual-studio ms-access office-interop office-automation
3个回答
1
投票

AppTitle 属性只有在 Access 中或通过代码(以及使用 RefreshTitleBar)设置后才会显示

您的代码之所以有效,是因为您正在循环检查名称。如果该房产是空的,您将找不到该房产。

您可以像上面那样使用循环方法,或者直接使用

database.properties("AppTitle")
检查它 - 只需确保在它为空时捕获错误


0
投票

更新:我明白了。这与我的预期不同,但解决方案是:

 var dbEngine = new DBEngine();
        var database = dbEngine.OpenDatabase(@"c:\\Sample.mdb");

        Microsoft.Office.Interop.Access.Dao.Property allowBypassKeyProperty = null;

        foreach (Microsoft.Office.Interop.Access.Dao.Property property in database.Properties)
        {
            if (property != null)
            {
                if (property.Name == "AppTitle")
                {
                    MessageBox.Show(property.Name.ToString());
                    MessageBox.Show(property.Value.ToString());
                }
            }


        }

0
投票

db.Properties["AppTitle"].Value.ToString()

© www.soinside.com 2019 - 2024. All rights reserved.