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