当我尝试命名一个这样的列时:
(year(now())+1) & " Revenue" : Revenue0
它字面上显示(年(现在())+ 1)& “收入”而不是“2013年收入”
如何解决此问题?
答案 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")
然后打开修改后的查询。