以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  ACCESS数据库级的函数请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85677)

--  作者:凡夫俗子
--  发布时间:2016/5/31 15:55:00
--  ACCESS数据库级的函数请教
Dim  tb As Table = e.Form.Controls("Table1").Table
Dim sqlstr As String = "SEL ECT 日期,客户,数量,year(日期) as 年,month(日期) as 月,DATEPART(\'yyyy\',日期)-1 As 上年 from {订单}"
tb.fill(sqlstr,True)

这样的语句可以获取前台数据的上年数据 DATEPART(\'yyyy\',日期)-1 As 上年

请教如何写成一个函数GetSy 从而像 year(日期) as 年一样调用 表现形式为 GetSy(日期)as 上年

在SQL数据库中我已在数据库中构造了函数实现了功能,但是在FT前台,试验好久了没搞出方法,请老师指点一下。

--  作者:大红袍
--  发布时间:2016/5/31 16:30:00
--  

你是想问Access数据库如何添加函数?不是很简单?在模块那里直接定义即可,语法是vbscript的语法

 

Public Function test(s As String)

    test = s
End Function


--  作者:凡夫俗子
--  发布时间:2016/5/31 16:54:00
--  
ALTER Function [dbo].[GetSy](@dt DateTime) 
 Returns Int  As  
Begin    
Return DATEPART(yyyy,@dt) - 1  
End
还是不明白 这一个是在SQL数据库中写的函数

SQL数据库中的参数定义是 (@dt DateTime) 
参数引用是 DATEPART(yyyy,@dt) - 1  
还有参数 yyyy 的用法 ,在SQL数据库中的是 直接yyyy 
在FT中r SQL语句中是\'yyyy\'
那么定居SQL语句可以调用 的函数又是要怎么样的呢

如何在FT系统中定义 一个功能同样 的函数呢
[此贴子已经被作者于2016/5/31 16:55:39编辑过]

--  作者:大红袍
--  发布时间:2016/5/31 17:05:00
--  

不理解你想问什么啊,在foxtable里面调用sql语句,语法跟具体数据库的语法一样的啊。

 

只有在数据库米面定义的函数,才可以在sql语句里面直接调用。


--  作者:凡夫俗子
--  发布时间:2016/5/31 17:09:00
--  
Dim  tb As Table = e.Form.Controls("Table1").Table
Dim sqlstr As String = "SEL ECT 日期,客户,数量,year(日期) as 年,month(日期) as 月,DATEPART(\'yyyy\',日期)-1 As 上年 from {订单}"
tb.fill(sqlstr,True)
这个是在 FOXTABLE中调用 内部数据源的语句 可以正常执行

就是想写一个函数 GetSy
然后
Dim sqlstr As String = "SEL ECT 日期,客户,数量,year(日期) as 年,month(日期) as 月,GetSy(日期As 上年 from {订单}"

目前在SQL数据库中已实现,我想在ACCESS数据库中也实现这样的用法
[此贴子已经被作者于2016/5/31 17:09:02编辑过]

--  作者:大红袍
--  发布时间:2016/5/31 17:12:00
--  

 去access数据库那里,添加一个模块,定义函数啊

 

Public Function GetSy(d As Date)

    GetSy = Format(d, "yyyy") - 1
End Function