0

私は大規模な OLAP キューブを使用しており、データ量 (最大 30 のファクト テーブル、30 のディメンション、および計算されたメジャー) を解析するのに役立つ非常に初歩的な検索機能を構築していますが、興味深いものに出会いました。問題。CubeField.Nameファクト テーブル メンバーまたは計算されたメジャーのプロパティにアクセスする[Measures].[FieldName]と、正しいファクト テーブル/計算されたメジャー フォルダーを指すのではなく、そのままアクセスされます。
私が使用しているコードは次のとおりです。

Sub X()

    Dim pvtTable As PivotTable
    Dim oCubeField As CubeField

    Set pvtTable = ActiveSheet.PivotTables(1)
    For Each oCubeField In pvtTable.CubeFields
        If InStr(LCase(oCubeField.Name), "spread") > 0 Then
            Debug.Print oCubeField.Parent & ": " & oCubeField.Name
        End If

    Next

End Sub

実際にファクトテーブル名に到達する方法についてのアイデアはありますか? それとも、計算されたメジャーのフォルダー構造ですか? ありがとう!

4

2 に答える 2

0

oCubeField.Valueおそらく試してみてください。CubeField オブジェクトのリファレンスには次のように書かれています。

Name オブジェクトの名前を表す文字列値を返します。

Value 指定されたフィールドの名前を表す文字列値を返します。

于 2012-12-05T04:22:02.383 に答える
0

残念ながら、メジャー式はいくつかのファクト テーブルにリンクしている可能性があるため、これを行うことはできません。

ただし、OpenSchema() 関数を使用してキューブ メタデータのクエリと分析を行うことができます。

このようなもの:

Sub GetMeasuresList()
    Const adSchemaMeasures = 36

    Set ADOCon = ActiveCell.PivotTable.PivotCache.ADOConnection

    Set RecSet = ADOCon.OpenSchema(adSchemaMeasures)

    While Not RecSet.EOF
        Debug.Print RecSet!MEASURE_NAME & ": " & RecSet!EXPRESSION
        RecSet.MoveNext
    Wend

End Sub

OLAP スキーマ行セット用の OLE DB

Visual Basic で ADO OpenSchema メソッドを使用する方法

于 2019-05-30T13:02:02.357 に答える