• ベストアンサー

GridでSQLを使うのに苦労してます。

SQL文を試行錯誤して、テキストボックス(伝票番号)とGrid(行番号・商品コード・数量)を連携させ(同じテーブル(MS-access))、 VB上で操作(追加・修正・検索・削除・表示etc)しようとしています。 本来ならば、クエリで望みのSQLを作成してから、コピーすれば良いのでしょうが、 伝票番号が1に対し、Grid内(行番号etc)が多の関係にある為、どのようなSELECT文を作成すればよいのかわかりません。 ユニオンクエリやらサブクエリやらなんのことやら…。 わかりにくい質問で申し訳ありませんが、 答えられる方、いらっしゃいましたら、よろしくお願いします。

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

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

ちなみに、ユニオンクエリは、別種のテーブル/クエリのデータをひとつの表にまとめたいときに使います。 個人テーブルと法人テーブルがあるとして、氏名と法人名をひとつの表として扱いたいときは、 SELECT 氏名 FROM 個人WHERE ~  UNION ALL SELECT 法人名 FROM 法人 WHERE ~; ってな感じですね。 サブクエリは、クエリで抽出した結果を使ってさらに別のクエリを抽出したいときに使います。 売上テーブルから、あ行の顧客が購入した商品を知りたいときなど、 SELECT 商品ID FROM 売上テーブル WHERE 顧客ID IN (  SELECT 顧客ID FROM 顧客テーブル WHERE カナ LIKE '[アーオ]*' ); のようにします。 少しでもヒントになれば幸いです。

noname#12942
質問者

お礼

2度にも渡り、ご回答いただきありがとうございました。 今、やっていて一番難しいことは、プログラムを読む事よりも、 相手に自分の出来ない事が何なのか…を伝える事にあります。 だからARCさんが最初に書かれたコメントを見て、 ドキッとしました。 先ほど、私(大学3年)の指導をしてくださっている大学の先生から、 バグが見つかったとメールがきました。 まだ何のバグなのか(そもそもバグってそんなに探し難いものなのかでしょうか?)わかりませんが、もうちょっと前進できそうです。 それでは…また何かの時は宜しくお願いします。 そのときこそ自分の分からないところをきちんと説明できればな…と願っております。

その他の回答 (2)

  • masabou7
  • ベストアンサー率18% (2/11)
回答No.2

要するに「伝票番号」単位で集約して表示したいのでしょうか? であれば、「GROUP BY」を使ってみてはどうでしょうか? それでも、出来ない場合は、VB側でLOOPしながら合計をカウントするしかないでしょうね。

noname#12942
質問者

お礼

そうです、「伝票番号」単位で集約して表示したいのです。 [GROUP BY]をなかなか上手く使えなかったので、LOOPしながらカウントすることにしました。 ご指導ありがとうございます。 指導教官より今日メールが… バグが見つかったそうです。 (何のバグかはまだ詳しく聞かされていませんが) ちょっと前進できそうな気がしてきました。 次回、質問をするときは、自分の分からないところをはっきりと伝えられるようになっていたいなと思っております。それでは。

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

SELECT * FROM Table1 WHERE 伝票番号 =1; のようなSQLを作って、それをグリッドに表示すればいいのでは? 大変混乱していらっしゃるようで、お書きになった文章ではいまいち何のことやらわからないです。 思いっきり具体的に、 ○どのようなテーブル、フィールドがあって、 ○どのような表示にしたいのか、 ○これまでどのようなことをしたのか、 ○そのやり方ではどのように駄目だったのか、 ○もちろん、OS、VB、Accessのバージョンなども。 といった事を補足してくださいな。 今回に限らず、技術系の質問をするときには、上記のような事柄をできるだけ具体的にお書きになって下さい。 その方が回答者の方ももぐっと答えやすくなりますので、より良い結果が得られますよ。 (ちなみに、現在システム大クラッシュ中でして、VBはおろか、Accessも、その他もろもろの開発環境も使えません。640*480の画面でちまちまと書いております。 ってことで、他力本願モードです。ほかの回答者さん、よろしくお願いします(笑)。)

関連するQ&A