• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクティブレポートを使ってDBのデータを帳票出力させています。)

アクティブレポートを使ってDBのデータを帳票出力させる方法

このQ&Aのポイント
  • 現在、VB.NET2008上でアクティブレポートを使って帳票作成をしています。アクティブレポートの使い方やSQLの書き方については初心者のため悩んでいます。特に、異なる区分のデータを取り出す方法が分かりません。
  • テーブル1のデータをアクティブレポートで帳票に出力する際、異なる区分のデータを取り出す方法がわかりません。以前は1つのテーブルから1つの情報だけ取り出していたので簡単でしたが、今回は区分が違うデータを組み合わせて表示したいです。
  • 具体的な例として、「B会社」の「商品C」をアクティブレポートの帳票に出力したいです。まだ初心者でSQLの書き方やアクティブレポートの設定方法が分からないので、教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • miyuyu
  • ベストアンサー率61% (30/49)
回答No.1

こんにちは いまひとつ内容が理解できません コードだけが入っているテーブル (本当にコードだけのテーブルなんですか意味が?) そのコードとコードに対する名前が入っているテーブル (これがテーブル1と同じなんでしょうか'区分'もありますね) テーブル1の商品CはなんでB会社のと判るんですか? 焦っておられるようですが もう少し話を整理していただけると もしかすると自己解決してしまうかもしれませんよ

yamikawa
質問者

お礼

先ほど、解決法を見つけました! SQL文で解決しました。「AS」を使って名前を新たに定義すると言うものを知らなかったんですが、これで解決しました。 SELECT *,   紙.包装 AS 紙_包装,   入れ物.包装 AS 入れ物_箱,   飾りリボン.包装 AS 装飾品 帳票テーブル  LEFT JOIN 顧客テーブル   ON 帳票テーブル.顧客 = 顧客テーブル.コード  LEFT JOIN 包装テーブル AS 紙   ON 帳票テーブル.包装紙 = 紙.コード  AND 紙.区分 = '01'  LEFT JOIN 包装テーブル AS 入れ物   ON 帳票テーブル.箱 = 入れ物.コード   AND 入れ物.区分 = '02'  LEFT JOIN 包装テーブル AS 飾りリボン ON 帳票テーブル.リボン = 飾りリボン.コード AND 飾りリボン.区分 '03' として、帳票で名前を表示するデータフィールドに 「紙_包装」や「装飾品」と設定すると、名前が表示されるようになりました。 おさがわせして申し訳ありませんでした。 でも、冷静になるようアドバイスをありがとうございました。

yamikawa
質問者

補足

回答ありがとうございます。 落ち着いて見返してみると・・・本当に分かりにくいですね申し訳ありません。 >コードだけが入っているテーブルについて。 まずこの帳票では、登録された情報を表示するという作業をしており、その登録する時に、別のテーブルからコードを取ってきています(例えば、商品テーブルから商品コードを引っ張ってくるといった感じです) 登録時には、そのコードしかテーブルに保存しないので、コードだけが入っているテーブルが出来ます。 >そのコードとコードに対する名前が入っているテーブル 例えで説明させていただきますと、プレゼント用の包装で使うものを顧客ごとに帳票一覧で出すのが目的です。 表示させたいのは「顧客の名前」「包装紙」「箱」「リボン」の四つです。 普通は帳票一覧で出すテーブル(以下:帳票テーブル)の「顧客のコード」と「顧客の名前を出すテーブル(以下:顧客テーブル)」の「顧客コード」をLEFT JOINで関連付ければ、帳票のオブジェクトのデータフィールドに「顧客名」の入っている列名を設定すれば、出力時に名前が出てきていました。 しかし「包装紙」「箱」「リボン」は種類が少ない為に、1つのテーブルにまとめて入っています(以下:包装テーブル)。番号が同じでも区別が付くように「区分」という列名をつけてあります。 これもLEFT JOINで関連付けて・・・と思っていたのですが、同じテーブルから区分を指定して、コードを関連付けるのをどうすればいいか。と分からなくなっています。 ↓帳票テーブル(番号は帳票番号)↓ ------------------------------------ |番号|顧 客|包装紙|箱|リボン| ------------------------------------ |01 |001  |  01|02|  03| |02 |002  |  03|01|  02| |03 |003  |  01|03|  01| ------------------------------------ ↓顧客テーブル↓ ------------------ |コード|顧客名| ------------------ |001  | 田中| |002  | 佐藤| |003  | 大田| ------------------ ↓包装テーブル↓ --------------------------- |区分|コード|包   装| --------------------------- |01 |001  |無地   | |01 |002  |チェック | |01 |003  |ストライプ| |02 |001  |丸    | |02 |002  |三角   | |02 |003  |四角   | |03 |001  |赤    | |03 |002  |青    | |03 |003  |黄    | --------------------------- なので「テーブル1の商品CはB会社のと判る」というか、帳票出力するためのテーブルに「B会社」と「商品C」のコードを登録したので、その名前を出したいのです。 テーブルを1つしか説明していなくて申し訳ありませんでした。 この説明で補足出来たでしょうか? ちなみに、まだ分からなくて唸っています。 もし、解決法に心当たりがございましたらご教授よろしくお願いします。