0

Firstname と Categories という名前のデータベース列があります。

FirstName  | Categories

Mike       | Blue; Green ; Red
Peter      | Green; Red
Paul       | Red; Blue

この形式でレポートを生成したい

**Blue :** 
Mike
Paul

**Green:**
Mike
Peter

**Red:**
Peter 
Paul

問題は、アクセス データベースの列の値を変更できないことです。値を区切るにはセミコロンが必要です。1000 を超えるレコードと 30 を超えるカテゴリがあります。

どうすればこれを達成できますか? 私は Crystal Reports を使用しており、プロのユーザーではありませんが、簡単に学習できます。

4

2 に答える 2

0

これは簡単に実行できますが、30 のカテゴリの可能性があるため見苦しくなります。あるカテゴリの名前全体が別のカテゴリの部分文字列である場合 (例: 緑と黄緑)、さらに醜くなります。

  1. Crystal Report を作成し、データベースを選択しますが、テーブルをドラッグするのではなく、[コマンドの追加] を選択します。
  2. 次のように「SQL」に挿入します。

.

SELECT 'Blue' As Category,*
FROM Customers
WHERE Categories LIKE '*Blue*'
UNION ALL
SELECT 'Green' As Category,*
FROM Customers
WHERE Categories LIKE '*Green*'
UNION ALL
SELECT 'Red' As Category,*
FROM Customers
WHERE Categories LIKE '*Red*'

次に、[レポート] > [グループ エキスパート] の下で、Command.Category ごとにグループ化します。

于 2012-07-03T21:46:29.660 に答える
0

あなたはおそらく運が悪いと思います。そのデータは設計が非常に不十分であり、そのデータを簡単に取り出す方法はありません。

オプションは次のとおりです。

  • 他のソースにデータを解析可能な形式で送信させ、Crystal Reports をその形式にポイントするか、または...
  • Access で正規化された新しいテーブルを作成し、Access で VBA を使用して現在のテーブルをクロールし、新しいテーブルにデータを入力してから、Crystal Reports を新しいテーブルにポイントします。

オプション #2 の欠点は、Crystal Report を実行する前に、新しいテーブルを再作成する必要がある場合があることです。

于 2012-07-03T18:59:26.543 に答える