【问题标题】:Unable to execute MS-Access Query calling VBA function from C#无法从 C# 执行调用 VBA 函数的 MS-Access 查询
【发布时间】:2018-11-14 22:46:51
【问题描述】:

我正在尝试以编程方式从 MS Access 数据库中读取查询结果。 代码sn -p如下-

using (var connection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.16.0;Data Source=C:\\Database1.accdb;"))
{
            connection.Open();

            using (var command = new OleDbCommand()
            {
                            CommandText =query,
                            CommandType = CommandType.Text,
                            Connection = connection
            })
            {
                            var reader = command.ExecuteReader();
                            if (reader != null)
                                            dataTable.Load(reader);
            }
}

当我们有一个简单的查询时,代码可以正常工作 -

"SELECT column1,column2 FROM tableName"

但是当我尝试执行以下查询时:

“SELECT func1([column1]),column2 FROM tableName”

我得到一个例外 - “表达式中未定义函数 'func1'”

该函数位于 VBA 模块中。

提前致谢!

【问题讨论】:

    标签: c# vba ms-access oledb


    【解决方案1】:

    您只能以这种方式调用 Access 原生的函数,而不是用户定义的函数。

    【讨论】:

    • 感谢您的回复。有什么解决方法可以实现这一点,您可以建议吗?这对我们来说确实是一个关键要求。请告诉我。谢谢!
    • 要么从 C# 自动化 Access(需要安装 Access(运行时?),要么在 C# 中复制函数并将 SQL 替换为 LINQ 或 DataTables。
    猜你喜欢
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多