调用 MS Access 查询,它从 Delphi ADO 组件调用模块中的 VBA 函数
Invoke MS Access Query which calls a VBA Function in a Module from Delphi ADO Component
我在 MS Access 模块中创建了一个函数,比方说 Calculate(A, B)
。
我还在 MS Access 中创建了一个查询来使用此功能,比方说:
UPDATE aTable
SET aField = Calculate(bField, cField)
如何调用查询,因为我尝试使用:adoConnection.Execute
、adoTable
、adoQuery
、adoCommand
和 StoredProcedure
,全部拒绝它与消息
Undefined function Calculate in expression
提前致谢。
你不能。
使用用户定义的 VBA 函数的查询只能由 Access Application 对象执行,并且只能通过 DoCmd.OpenQuery
和 DoCmd.RunSQL
方法执行。
而是使用 COM 和 Access Application 对象来自动执行任务。请注意,这将导致相当大的开销。或者,如果可能,在 SQL 子句中进行计算。
它们无法通过 ODBC 或 OLEDB 获得,因此在 ADO 中也无法获得。
如果没有完整版的 Access(不是 运行时代版本或数据库引擎),很遗憾,您不能 运行 使用用户定义 VBA 的查询函数。
我在 MS Access 模块中创建了一个函数,比方说 Calculate(A, B)
。
我还在 MS Access 中创建了一个查询来使用此功能,比方说:
UPDATE aTable
SET aField = Calculate(bField, cField)
如何调用查询,因为我尝试使用:adoConnection.Execute
、adoTable
、adoQuery
、adoCommand
和 StoredProcedure
,全部拒绝它与消息
Undefined function Calculate in expression
提前致谢。
你不能。
使用用户定义的 VBA 函数的查询只能由 Access Application 对象执行,并且只能通过 DoCmd.OpenQuery
和 DoCmd.RunSQL
方法执行。
而是使用 COM 和 Access Application 对象来自动执行任务。请注意,这将导致相当大的开销。或者,如果可能,在 SQL 子句中进行计算。
它们无法通过 ODBC 或 OLEDB 获得,因此在 ADO 中也无法获得。
如果没有完整版的 Access(不是 运行时代版本或数据库引擎),很遗憾,您不能 运行 使用用户定义 VBA 的查询函数。