4

これが私のクエリです:

PARAMETERS ...
TRANSFORM ...
SELECT ...
...
PIVOT Mytable.type In ("Other","Info");

これはクロス クエリであり、この行ですべての列見出しを設定する必要があります。PIVOT Mytable.type In ("Other","Info")そして今、見出しOtherInfoをハードコーディングしました。

しかし、私はこれを動的に行いたいです。だから私がしたいのは、必要なすべての見出しを返す vba 関数を呼び出すことです。

このようなもの:

PIVOT Mytable.type In (myVbaFunction());

私の質問は次のとおりです。SQLクエリ内でvba関数を呼び出す方法は?

4

5 に答える 5

3

はい、可能です。
ただし、では不可能だと思いますWHERE IN (...)

WHERE通常のクエリの例を次に示します。

Public Function Test() As String
    Test = "Smith"
End Function

...その後:

SELECT * FROM Users WHERE Name = Test();

関数が1つの値のみを返す限り、機能します。しかし、関数に「Smith、Miller」のようなものを返させて、次のように使用すること はできない
と思います。

SELECT * FROM Users WHERE Name In (Test());

(少なくとも私はそれを行う方法がわかりません)

于 2010-02-14T13:10:34.723 に答える
0

これらの見出しをテーブルに追加して、そのテーブルを xtab クエリに結合してみませんか?
関数でハードコーディングする方がおそらく簡単です。

于 2010-02-14T14:06:36.153 に答える
-2

Accessを使用しているとおっしゃっていましたが、(私の頭の中では)そうです。クエリでVBA関数を使用することは可能です。

ドキュメントとMSDNを確認してください。

于 2010-02-14T12:56:47.043 に答える