MS Access:在列名中使用year?

时间:2012-11-09 17:40:55

标签: ms-access

当我尝试命名一个这样的列时:

(year(now())+1) & " Revenue" : Revenue0

它字面上显示(年(现在())+ 1)& “收入”而不是“2013年收入”

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

AFAICT,您希望数据库引擎派生查询字段表达式的别名,类似于此...

SELECT 1234.56 AS Year(Date()) & " Revenue";

不幸的是,这会引发错误:“ SELECT语句包含拼写错误或缺失的保留字或参数名称,或者标点符号不正确。

db引擎无法使用函数派生别名;你只能给它一个别名的文字字符串值。

您可以从更改查询的SQL属性的函数运行已保存的查询。这将允许您使用不同的字符串值替换别名。

如果您保存的查询名为“qryFoo”并将其包含为SQL ...

SELECT Revenue0 AS REVENUEYEAR
FROM YourTable;

......你可以这样做......

Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Set db = CurrentDb
Set qdf = db.QueryDefs("MyQuery")
qdf.SQL = Replace(qdf.SQL, "REVENUEYEAR", Cstr(Year(Date())+1) & " Revenue")

然后打开修改后的查询。