DataGridで複数行を1行にまとめるには?

解決


VB発展途上の初心者とも  2005-11-13 00:40:26  No: 127621

ご質問させていただきます。
AccessのテーブルをDBに使って、VBのDataGridに表示するのですが
列の中に同じものがあったりして見にくいので複数行を1行に
まとめたいのですが、可能でしょうか?

やりたいことは
例えば、DataGridに表示すると
| 人名 | 日付 | 出欠席 |
| 鈴木 | 2日  | 出席   |
| 鈴木 | 5日  | 出席   |
| 鈴木 | 8日  | 欠席   |
| 田中 | 1日  | 出席   |
| 田中 | 3日  | 欠席   |
| 田中 | 6日  | 欠席   |
| 渡辺 | 1日  | 出席   |
| 渡辺 | 8日  | 出席   |
| 渡辺 | 9日  | 出席   |
なります。(前者)

これを
| 人名 | 日付 | 出欠席 | 日付 | 出欠席 | 日付 | 出欠席 |
| 鈴木 | 2日  | 出席   | 5日  | 出席   | 8日  | 欠席   |
| 田中 | 1日  | 出席   | 3日  | 欠席   | 6日  | 欠席   |
| 渡辺 | 1日  | 出席   | 8日  | 出席   | 9日  | 出席   |
と、したいのです。(後者)

mySQL = "SELECT 人名,日付,出欠席 " _
      & "FROM 出欠席簿 "
rs,Source = mySQL
途中省略
rs.Open
DataGrid1.DataSource = rs

だと前者のようになってしまいます。
後者のようにするにはどうすればよいでしょうか?
それとも不可能でしょうか?

初心者な私にご教授ねがいます。


さんちょ  2005-11-15 02:05:45  No: 127622

まずは、望みの形にSELECTできるようにSQL文を組んでみましょう!
さすれば、VBの修正もおのずと見えてくるはず。


あん  2005-11-15 03:33:43  No: 127623

集計などのアルゴリズムを勉強しましょう。
最近はそういうのは勉強してないのかな?


VB発展途上の初心者とも  2005-11-15 07:16:03  No: 127624

さんちょさんへ
望みの形になるようにSQL文を組んではみたものの
やっぱり出来ません。
SELECTのところで、日付と出欠席が繰り返されればよいのですが・・・
初心者にはDataGridは難しいのでしょうか?

あんさんへ
集計などのアルゴリズムって、よく分かりません。
どんな勉強すればよいのでしょうか?
参考までに教えてください。

目的から外れてしまっている発言を許してください。


あん  2005-11-15 08:26:17  No: 127625

>望みの形になるようにSQL文を組んではみたものの
公開してみてください。


もげ  2005-11-15 17:56:26  No: 127626

>初心者にはDataGridは難しいのでしょうか?

DataGridが難しいのではなくて、使い方を間違てています。
DataGridは基本的には、テーブルからのデータソースをそのまま
表示させて、その上で直接編集できることにメリットがあるかと思います。
今回の件を実現するとなると、
目的の並び順になるようにSQLを組むか(ぱっと見、私には無理)、
ワークテーブルを作ってその上で目的の並び順を実現して、
それをデータソースに指定して表示させるか、
または、
DataGridではなくて、MS(H)FlexGridなどで、
1件づつレコードを読んで、任意のセルに自力で書き込んでいく
ほうがロジック的に理解しやすいかもしれません。

(私なら、MSHFlexGridで組むかも)


VB発展途上の初心者とも  2005-11-16 06:06:45  No: 127627

>DataGridは基本的には、テーブルからのデータソースをそのまま
>表示させて、その上で直接編集できることにメリットがあるかと
>思います。

私もそう思っています。
ただ、できるか挑戦してみたのですが、自己解決できなかったため
ここに書き込みしました。
できるかできないかの判断がつけばよかったのですが、
できないという自己判断にします。

MSHFlexGridでは、ちょっと面倒でしたができましたので
解決ではありませんが、これで終わりにしておきます。

また、分からない事がありましたら宜しくお願いいたします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加