会员登录 - 用户注册 - 网站地图 Office中国(office-cn.net),专业Office论坛
当前位置:主页 > 技巧 > Access技巧 > DAO/ADO/ADP > 正文

VBA与T-SQL之间的函数比较;SQL Server的SQL语句如何在ACCESS中

时间:2009-04-15 00:00 来源:access911.net 作者:MS & cg1 阅读:

Visual Basic for Applications 与 SQL Server Transact-SQL 之间的函数比较 (ADP)
注释  本主题中的信息仅适用于 Microsoft access 项目 (.adp)。

下表比较了 Microsoft Visual Basic for Applications (VBA) 和 Microsoft SQL Server Transact-SQL 中的常用函数。有关 Transact-SQL 标量函数的详细信息,请参阅 SQL Server 文档。

注意   “升迁向导”将下列 VBA 函数(用于表有效性规则、字段验证和默认情况下)转换为对等的 Transact-SQL 函数。

 

字符串函数

VBA 函数       Transact-SQL
               标量函数 
------------------------------------------------
Asc(x)         ASCII(x) 
Chr$(x)        CHAR(x) 
Lcase$(x)      LCASE(x) 
               LOWER(x)
Len(x)         DATALENGTH(x) 
Ltrim$( x)     LTRIM(x) 
Mid$(x,y,z)    SUBSTRING(x,y,z) 
Right$(x,y)    RIGHT(x,y) 
Rtrim$(x)      RTRIM(x) 
Space$(x)      SPACE(x) 
Str$(x)        STR(x) 
Ucase$( x)     UCASE(x) 
               UPPER(x)
 

 

转换函数

VBA 函数       Transact-SQL
               标量函数 
------------------------------------------------
Ccur(x)        CONVERT(money,x) 
Cdbl(x)        CONVERT(float,x) 
Cint(x)        CONVERT(smallint,x) 
Clng(x)        CONVERT(int,x) 
Csng(x)        CONVERT(real,x) 
Cstr(x)        CONVERT(varchar,x) 
Cvdate(x)      CONVERT(datetime,x) 

 

 

日期函数

VBA 函数                              Transact-SQL
                                      标量函数 
------------------------------------------------
Date(x)                               CONVERT(DATETIME,CONVERT(varchar,GETDATE(x))) 
Dateadd("<access datepart>",x,y)      DATEADD(<SQL Server datepart>, x, y) 
Datediff("<access datepart>",x,y)     DATEDIFF(<SQL Server datepart>, x, y) 
Datepart("<access datepart>", x)      DATEPART(<SQL Server datepart>, x) 
Day(x)                                DATEPART(dd,x) 
Hour(x)                               DATEPART(hh,x) 
Minute(x)                             DATEPART(mi,x) 
Month(x)                              DATEPART(mm,x) 
Now(x)                                GETDATE(x) 
Second(x)                             DATEPART(ss,x) 
Weekday(x)                            DATEPART(dw,x) 
Year(x)                               DATEPART(yy,x) 

 

 

数学函数
VBA 函数          Transact-SQL
                  标量函数 
------------------------------------------------
Int(x)            FLOOR(x) 
Sgn(x)            SIGN(x) 
Rnd(x)            ROUND(x) 


 整理的其他函数
VBA 函数          Transact-SQL
                  标量函数 
------------------------------------------------
replace           replace
mid               substring
nz                isnull
iif               case ... when ... then ...
switch            case ... when ... then ...

 

问题:
 

  请问在access中不支持标准SQL语句的SELECT CASE 语句吗?
比如:
select (case 小组名 WHEN '01' THEN 'FA' WHEN '02' THEN 'PRESS' END) AS 小组名 from deptinfo 


老是报错说操作符丢失,应该可以的啊!哪位高手指点指点!

 

 

回答:
 

 
SELECT CASE 不是标准的 SQL 语句,是 T-SQL ,MS SQL SERVER 的特例而已
在纯 access 环境可以将
select (case 小组名 WHEN '01' THEN 'FA' WHEN '02' THEN 'PRESS' END) AS 小组名 from deptinfo 


改为
select switch(小组名='01','FA',小组名='02','PRESS') from deptinfo


当然,你也可以用 IIF ,
select iif(小组名='01','FA','PRESS') from deptinfo

 

但是在  ASP + MDB 或者 VB + MDB 这种环境你可以用

select 'FA' from deptinfo where 小组名='01' UNION ALL select 'PRESS' from deptinfo where 小组名='02'

 

来完成


(责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
上一篇:设置 ADP 的连接
下一篇:ADP 启动分析
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价: