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

polkgigr  于 2023-10-23  发布在  C#
关注(0)|答案(3)|浏览(180)

我需要通过C#从Access数据库中获取应用程序标题。我看到了一些使用Office Excel的示例:即:https://learn.microsoft.com/en-us/office/vba/api/access.application.apptitle
问题是,我没有对类库的引用来访问Application.AppTitle属性。我尝试了一些参考,最值得注意的是:
using Microsoft.Office.Interop.Access.Dao
但我无法通过任何属性访问Application.AppTitle。举例来说:

  1. var dbe = new Microsoft.Office.Interop.Access.Dao.DBEngine();
  2. var db = dbe.OpenDatabase(@"c:\\Sample.mdb");
  3. // Show database properties
  4. // db.Properties. "When I expand this there is no AppTitle"

有没有人有任何其他的方法,为他们工作,通过C#访问MS访问AppTitle?
提前感谢!
伊恩

gev0vcfq

gev0vcfq1#

只有在Access中或通过代码(以及使用RefreshTitleBar)设置AppTitle属性时,才会显示该属性
您的代码可以工作,因为您正在循环检查名称。如果房子是空的你就找不到了。
您可以像上面一样使用循环方法,或者直接使用database.properties("AppTitle")检查它--只要确保在它为空的情况下捕获错误即可

jei2mxaa

jei2mxaa2#

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

  1. var dbEngine = new DBEngine();
  2. var database = dbEngine.OpenDatabase(@"c:\\Sample.mdb");
  3. Microsoft.Office.Interop.Access.Dao.Property allowBypassKeyProperty = null;
  4. foreach (Microsoft.Office.Interop.Access.Dao.Property property in database.Properties)
  5. {
  6. if (property != null)
  7. {
  8. if (property.Name == "AppTitle")
  9. {
  10. MessageBox.Show(property.Name.ToString());
  11. MessageBox.Show(property.Value.ToString());
  12. }
  13. }
  14. }
展开查看全部
vh0rcniy

vh0rcniy3#

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

相关问题