我在几个*.mdb
文件中有一些MS-Access查询。它们非常复杂
所以我只想打开一个文件,运行它包含的特定查询并返回结果表
我该怎么做?
(我知道我们可以通过连接字符串等进行连接,但我想以这种方式进行探索。)
<小时/> 我的示例代码(已编辑以禁用安全警报):
using Microsoft.Office.Interop.Access;
using Microsoft.Office.Core;
var app = new Application();
app.OpenCurrentDatabase(@"C:\test.mdb", true);
app.AutomationSecurity = MsoAutomationSecurity.msoAutomationSecurityLow;
app.Visible = false;
// run query
app.Quit();
示例查询:
select date(), date()-1
答案 0 :(得分:3)
从Microsoft Access应用程序的实例中运行查询(例如,运行使用自定义VBA函数的查询以及可能无法从直接System.Data.OleDb或System.Data.Odbc查询中获得的其他功能你可以做这样的事情:
var accApp = new Microsoft.Office.Interop.Access.Application();
accApp.OpenCurrentDatabase(@"C:\Users\Public\Database1.accdb");
Microsoft.Office.Interop.Access.Dao.Database cdb = accApp.CurrentDb();
Microsoft.Office.Interop.Access.Dao.Recordset rst =
cdb.OpenRecordset(
"SELECT FullName FROM ClientQuery",
Microsoft.Office.Interop.Access.Dao.RecordsetTypeEnum.dbOpenSnapshot);
while (!rst.EOF)
{
Console.WriteLine(rst.Fields["FullName"].Value);
rst.MoveNext();
}
rst.Close();
accApp.CloseCurrentDatabase();
accApp.Quit();