ご質問させていただきます。
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
だと前者のようになってしまいます。
後者のようにするにはどうすればよいでしょうか?
それとも不可能でしょうか?
初心者な私にご教授ねがいます。
まずは、望みの形にSELECTできるようにSQL文を組んでみましょう!
さすれば、VBの修正もおのずと見えてくるはず。
集計などのアルゴリズムを勉強しましょう。
最近はそういうのは勉強してないのかな?
さんちょさんへ
望みの形になるようにSQL文を組んではみたものの
やっぱり出来ません。
SELECTのところで、日付と出欠席が繰り返されればよいのですが・・・
初心者にはDataGridは難しいのでしょうか?
あんさんへ
集計などのアルゴリズムって、よく分かりません。
どんな勉強すればよいのでしょうか?
参考までに教えてください。
目的から外れてしまっている発言を許してください。
>望みの形になるようにSQL文を組んではみたものの
公開してみてください。
>初心者にはDataGridは難しいのでしょうか?
DataGridが難しいのではなくて、使い方を間違てています。
DataGridは基本的には、テーブルからのデータソースをそのまま
表示させて、その上で直接編集できることにメリットがあるかと思います。
今回の件を実現するとなると、
目的の並び順になるようにSQLを組むか(ぱっと見、私には無理)、
ワークテーブルを作ってその上で目的の並び順を実現して、
それをデータソースに指定して表示させるか、
または、
DataGridではなくて、MS(H)FlexGridなどで、
1件づつレコードを読んで、任意のセルに自力で書き込んでいく
ほうがロジック的に理解しやすいかもしれません。
(私なら、MSHFlexGridで組むかも)
>DataGridは基本的には、テーブルからのデータソースをそのまま
>表示させて、その上で直接編集できることにメリットがあるかと
>思います。
私もそう思っています。
ただ、できるか挑戦してみたのですが、自己解決できなかったため
ここに書き込みしました。
できるかできないかの判断がつけばよかったのですが、
できないという自己判断にします。
MSHFlexGridでは、ちょっと面倒でしたができましたので
解決ではありませんが、これで終わりにしておきます。
また、分からない事がありましたら宜しくお願いいたします。
ツイート | ![]() |