Foxtable(狐表)用户栏目专家坐堂 → ACCESS数据库级的函数请教


  共有2144人关注过本帖树形打印复制链接

主题:ACCESS数据库级的函数请教

帅哥哟,离线,有人找我吗?
凡夫俗子
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:457 积分:3523 威望:0 精华:0 注册:2016/1/22 18:17:00
ACCESS数据库级的函数请教  发帖心情 Post By:2016/5/31 15:55: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)

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

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/31 16:30:00 [只看该作者]

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

 

Public Function test(s As String)

    test = s
End Function


 回到顶部
帅哥哟,离线,有人找我吗?
凡夫俗子
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:457 积分:3523 威望:0 精华:0 注册:2016/1/22 18:17:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/31 17:05:00 [只看该作者]

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
凡夫俗子
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:457 积分:3523 威望:0 精华:0 注册:2016/1/22 18:17:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/31 17:12:00 [只看该作者]

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

 

Public Function GetSy(d As Date)

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


 回到顶部