我想要的是访问MS Access属性,而不实际打开数据库。访问MSAccess属性,而不实际打开数据库
下面是一些代码,以获得更好的理解:
var processStartInfo = new ProcessStartInfo(args[0])
{
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true
};
Process.Start(processStartInfo);
application = (Access.Application)Marshal.GetActiveObject("Access.Application");
dao.Property allowByPassKeyProperty = null;
foreach (dao.Property property in application.CurrentDb().Properties)
{
if (property.Name == "AllowByPassKey")
{
allowByPassKeyProperty = property;
break;
}
}
我的问题是,在这种情况下,我为了寻找属性打开数据库(application.CurrentDb()属性)和MS Access启动的东西踢。
我想避免所有的启动东西,只是为属性注入正确的值。
是否有可能通过属性,可能是反射和后期绑定:http://www.codeproject.com/KB/database/mdbcompact_latebind.aspx?
或者还有其他的选择来实现我想要的吗?
API可以模拟Shift键来停止启动的东西,但我不知道它如何适应c#:http://www.mvps.org/access/ api/api0068.htm – Fionnuala 2011-02-10 21:54:13
@ Remou。是的,这是可能的,但没有任何好处,因为我想要的是一个可以激活和停用bypasskey(shift)的程序。一旦我停用它,模拟将无济于事。 – Egi 2011-02-14 11:52:44