Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MS Access 2007中使用SQL用户定义函数_Sql_Ms Access_User Defined Functions - Fatal编程技术网

在MS Access 2007中使用SQL用户定义函数

在MS Access 2007中使用SQL用户定义函数,sql,ms-access,user-defined-functions,Sql,Ms Access,User Defined Functions,我是个新手,需要一些帮助。 我当时正在用SQL 2008 Server作为我的数据库,使用MS Access 2007(VB) 我想在Access的前端显示一个SQL表,但在Access 2007中使用SQL用户定义函数进行SQL查询时遇到了这个问题。我在Access的SQL查询设计中编写了这个函数和查询,并尝试运行它。。但其显示错误(无法识别用户定义的“timepart”函数) 我猜MS Access不允许编写UDF SQL函数!我在本地的SQLServer2008数据库(SQLServerM

我是个新手,需要一些帮助。 我当时正在用SQL 2008 Server作为我的数据库,使用MS Access 2007(VB)

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

我猜MS Access不允许编写UDF SQL函数!我在本地的SQLServer2008数据库(SQLServerManagementStudio)中尝试了相同的查询,现在运行得非常好

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


我选择了“通过”选项卡,然后执行查询。它现在要求我“选择数据源”!!你设置ODBC连接了吗?是的,我设置了!!还有其他选择吗??我是否可以登录到我的在线数据库服务器,创建此函数并直接在Access的SQL查询设计中使用它!!??您可以在SQL Server中创建视图并链接该视图,还可以使用ADO或在查询设计窗口中作为传递查询运行存储过程。然而,如果您不能让一个简单的直通查询工作,如上图所示,您需要解决这个问题。首先,您是否使用链接表?不,我没有使用链接表。
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';