【问题标题】:Using SQL user defined function in MS Access 2007在 MS Access 2007 中使用 SQL 用户定义函数
【发布时间】:2012-09-28 14:07:19
【问题描述】:

我是 Access 的新手,在这里需要一些帮助。 我正在使用 SQL 2008 Server 作为我的数据库来开发 MS Access 2007(在 VB 中)。

我想在 Access 的前端显示一个 SQL 表,但在 Access 2007 中将 SQL 用户定义函数与我的 SQL 查询一起使用时遇到了问题。我在 Access 的 SQL 查询设计中编写了这个函数和查询并尝试运行它.. 但它显示错误(用户定义的“timepart”函数无法识别)!!

CREATE function  dbo.timepart (@date as SMALLDATETIME) 
RETURNS SMALLDATETIME 
AS 
BEGIN 
RETURN @date - DATEADD(d, DATEDIFF(d,0,@date), 0) 
END 

SELECT * FROM TABLENAME WHERE dbo.timepart(FIELDNAME) Between '9:30' AND '17:30';

我猜 MS Access 不允许编写 UDF SQL 函数!我在本地 SQL Server 2008 数据库(SQL 管理工作室)中尝试了同样的查询,并且运行良好。

【问题讨论】:

    标签: sql ms-access user-defined-functions


    【解决方案1】:

    您应该创建一个pass-through 查询。通过传递查询,代码在 SQL Server 上运行,结果返回到 MS Access。因此,您可以使用 SQL Server T-SQL。

    还有access-SQL pass-through query (creating SP) error

    【讨论】:

    • 我选择了“通过”选项卡,然后执行了查询。它现在要求我“选择数据源”!
    • 您是否设置了 ODBC 连接?
    • 是的,我做到了!还有其他选择吗??我可以登录我的在线数据库服务器,创建这个函数并直接在访问的SQL查询设计中使用它!!??
    • 您可以在 SQL Server 中创建一个视图并链接该视图,您可以使用 ADO 或在查询设计窗口中作为传递查询运行存储过程。但是,如果您无法使简单的传递查询(如上所示)起作用,则需要解决该问题。首先,您使用的是链接表吗?
    • 不,我没有使用链接表。
    猜你喜欢
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多