1

次のように列に名前を付けようとすると、次のようになります。

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

文字通り、「2013 Revenue」ではなく、(year(now())+ 1)&「Revenue」を表示します

これを解決するにはどうすればよいですか?

4

1 に答える 1

1

AFAICT、これと同様に、dbエンジンがクエリフィールド式のエイリアスを取得するようにします...

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")

次に、修正されたクエリを開きます。

于 2012-11-09T18:07:44.570 に答える