• 締切済み

DB検索の結果を項目ごとに別シートにしたい

識者の方々教えてください。 Excel VBAで、DBに接続し、クエリの結果ごとに別シートにしたいと思っています。 <DBサンプル> 店舗,商品,個数 A店,商品1,10 A店,商品2,10 B店,商品1,10 B店,商品1,10 ・・・ <表示したい内容> Sheet1には、A店のレコードのみを表示させたい。 Sheet2には、B店・・・と、 店舗数は全部で15店舗ぐらいあります。 店舗数ぶんクエリをかけるしかないのでしょうか? もっとシンプルにできると思うのですが、知識不足で、 そのようなノウハウを教えていただけたらと思います。

noname#168945
noname#168945

みんなの回答

noname#22222
noname#22222
回答No.1

データベース言語を示された方が宜しいかと...

noname#168945
質問者

補足

DBは、AS/400を使用しており、 iSeries Access for Windowsを使用しています。 ADO接続です。

関連するQ&A

  • エクセル 項目ごとの組み合わせを別シートに表示させる

    エクセル2003を使用しています。 以前こちらで質問させていただいた以下の質問のNo.5の方の回答を 元に、作業用セルを使用してできるかと思いましたが、どうもうまく いかなかったのでよろしくお願いいたします。 http://oshiete1.goo.ne.jp/qa5421320.html やりたいことは、以下のようなデータがあり、それを別シートに 項目ごとに名前だけ重複しない形で移したいのです。 店舗 商品 単価 A店 野菜 100 A店 野菜 150 A店 果物 200 B店 菓子 100 B店 菓子 150 B店 野菜 100 これを、↓ A店 野菜 A店 果物 B店 菓子 B店 野菜 このように、商品を店舗毎に一まとめにして表示し、 店舗-商品の全ての組み合わせを網羅して別シートに表示したいと 思っています。 よろしくお願いいたします。

  • 【VBA】シート1の入力表をシート2に並び替えて表示させたい【VBA】

    はじめて質問させて頂きます。 駄文で伝わりづらいかと思いますが、大変困っておりますので、ご教授下さい。宜しくお願いします。 【シート1】       商品コード 店舗コード 001  002 003 0000A  ¥1   ¥2  ¥3 0000B  ¥4   ¥5  ¥6 0000C  ¥7   ¥8  ¥9 【シート2】 店舗コード 商品コード 金額 0000A  001   ¥1 0000A  002   ¥2 0000A  003   ¥3 0000B  001   ¥4 0000B  002   ¥5 0000B  003   ¥6 0000C  001   ¥7 0000C  002   ¥8 0000C  003   ¥9 ★実現したいこと VBAを用いて、シート1にて入力した内容を、シート2のように並べ替えて表示したい。 ★条件 店舗コード→可変(A列で上から拾いNULLまでループ) 商品コード→固定(上記例だと001~003の3つ) 金額→可変 以上です。当方VBA初心者ですが宜しくお願いします。

  • エクセルで、検索条件と合計範囲の異なる“カウント”

    職場でExcel2003を使っています。 こんなデータを集計する必要が出てきました。  A         B     C     D    E 1会社名     店舗名  商品A  商品B 商品C 2株式会社A  店舗a   0個    12個   13個 3株式会社A  店舗b   1個    12個   0個 4株式会社A  店舗c   0個    0個    0個 5株式会社B  店舗a   5個    12個   13個 6株式会社B  店舗b   0個    0個   13個 7株式会社B  店舗c   6個    12個   3個 8株式会社B  店舗d   0個    12個   14個 ↑この表のデータを、 A社    商品A取扱店舗数 商品B取扱店舗数 商品C取扱店舗数       商品A販売個数   商品B販売個数  商品C販売個数 B社   商品A取扱店舗数 商品B取扱店舗数 商品C取扱店舗数       商品A販売個数   商品B販売個数  商品C販売個数 C社… という表にしたいのですが、ココに入れる関数。 販売個数の方は簡単にいきました、sumif($A$1:$A$8,"会社名"、C$1:C$8)てやればよかったので。 が、取扱店舗数の方が、難問。 sumifだと、検索条件の範囲と、合計範囲って別に設定できるじゃないですか。 “A列で、A社て入っている行の、C列の数字を合計する” という設定が出来る。 ところが、販売店数となると…。 sumifと全く同じ要領で、 “A列で、A社と入っている行の、C列のデータ個数を数える” という作業を、したいんですが…countifでは「A列で、A社と入っている行の数を数える」のが精一杯。 A社    count(C$2:C$4) count(D$2:D$4) count(E$2:E$4)       商品A販売個数   商品B販売個数  商品C販売個数 B社    count(C$5:C$8) count(D$5:D$8) count(E$5:E$8)       商品A販売個数   商品B販売個数  商品C販売個数 C社… とする方法もありますが(上の表の店舗は増えたり減ったりしない予定なので)、最初が大変だし、sumifのように、関数一つで何とかならないだろうか、と…。 配列数式?DCOUNT関数?? すみません、どなたか、お知恵を下さい…。

  • エクセルで重複するセル合計を別シートへ自動記入

    エクセルのシートAに商品番号(実際は1000個近くあります)と その売り上げ個数がずらっと並んでいます。 各顧客ごとの売り上げ結果なので、商品番号がかなり重複しています。 これをシートBに各商品ごとに売り上げ個数が表示されるような 関数式が知りたいです。 ちなみにシートAとシートBの商品の並び順は違います。 今までは商品ごとに合計を出してから、別シートで該当商品を探し、 手入力で入れていたので、この作業に3時間くらいかかっていました。 入力ミスの可能性もあるので、さらに確認作業も大変でした。 【シートA】 A    B --------- 001  3 001  2 001  2 002  1 002  1 003  1 003  2 003  5 003  3 【シートB】 A   B --------- 001  7 002  2 003  11 いろいろ調べて試してみましたが苦戦しています。 まずはシートAの「C1」に関数「=SUMIF($A$1:$A$2000,A1,$B$1:$B$2000)」を入力し、 各商品ごとの合計数を出し、それをC欄の下(C2000)までとドラッグ?してみたのですが、 そうすると下のように、同じ商品内で数値が重複して出るので、 今度は余計な数値(セル)を削除しないといけないと思い、 そこからつまづいてしまいました。 【シートA】 A   B   C --------------- 001  3  7 001  2  7 001  2  7 002  1  2 002  1  2 003  1  11 003  2  11 003  5  11 003  3  11 長文ですみません。 方法をご存知の方、ぜひ教えてください。 よろしくお願いします!

  • エクセルで多数シートの表を1シートにまとめる方法

     エクセルで下記のような表があり、店舗別に100店舗分のシートがあります。それを分類A、B別に1枚のシートにしたいのですが、簡単に作る方法はあるでしょうか。 【店名ア シート】 分類A 個数 商品1 60 商品2 40 商品3 20 分類B 商品4 50 商品5 80 商品6 30    ↓↓↓ 【分類Aシート】         【分類Bシート】 店名ア 商品1 60       店名ア 商品4 50       商品2 40              商品5 80        商品3 20             商品6 30 店名イ 商品1 30       店名イ 商品4 60        商品2 10             商品5 40      商品3 20             商品6 20

  • Excel2007 シートと列・行を検索して入力

    シート (東京・千葉・埼玉)は店舗名です、列(日付)に行(商品名)が何個入ってきたか入力しなければなりません。同じ日に同じ商品が入ってきたら合算しなければなりません。 入力はsheet1のA列に店舗名シート B列に日付 C列に商品名 D列に個数を連続して入力したいです。 このマクロを教えて頂きたいです。 よろしくお願いいたします。

  • 検索結果を別シートにコピー

    こんにちは。 マクロ初心者のものですが、 (1)シート1のA1からA50までに、京都にある大学名のデータベース を作る。  シート2のA1に大学名の一部などのキーワードを入力すると、B1 に検索結果(大学名)が表示されるマクロをボタン1に登録。 (2)複数候補が出た場合に、次の候補をA2に表示してくれるマクロをボタン2に登録。 (3)シート2のA2にキーワードを入力すると、B2からB6までに5つの候補が表示されるマクロをボタン3に登録。 以上のことをfindメソッドを使ってやりたいのですが、自分でやってみると、どうしても(1)と(2)の作業が分割されません。 (1)では1度実行すると、もう一度ボタンを押しても実行されないようにしたいのですが、一度押して、検索結果が表示された後またもう一度押すと、次の候補を表示してしまいます。 次の候補の表示は(2)に移したいのですがどうしてもできません。 (3)もいろいろ試しているのですが、うまくいきません。 どんなことでも結構ですのでアドバイスお願いします。

  • DBシートの内容をマクロで台帳にしたい

    マクロ初心者です。 エクセルのDBシートの内容をマクロで台帳にしたいのですが、マニュアル本を見てもなかなかうまくできません。 基本的には「DB」シートと、台帳原紙シートからなるエクセルファイルがあります。 「DB」シートのA列 A4:A500には商品の記号がならび、B列以降はその行の商品の固有情報が記載されています。  例 A7  商品αの記号   B7  商品αの項目  C7商品αの仕様・・・ 台帳原紙シートは空欄の商品台帳となっております。 DBシートのA列の任意のセル(例 A14 記号名 「TEST-8」)を選択し、マクロを開始すると、台帳原紙シートをコピーして、そのシート名を「TEST-8」とし、台帳「TEST-8」のセルD1にDBシートのB7の記載情報をコピー。同じく台帳「TEST-8」のセルD5にDBシートのH7の記載情報をコピーしたいのです。  なお、マクロを開始した際、すでに記号名と同じ名称のシートがある場合は、コピーせず、そのシートに飛ぶようにしたいと考えております。 Sub DB⇒台帳() Dim Sheetname As String On Error GoTo Er1 Sheetname = Cells(ActiveCell.Row, 5) If Sheetname <> "" Then Sheets("Orig.Sheet1").Select Sheets("Orig.Sheet1").Copy Before:=Sheets(3) End If Er1: End Sub と見よう見真似でやってみたものの、既存のシートには飛べましたが、結果は散々・・・。 いろいろご指導をお願い申し上げます。

  • 別シートから値のある行を検索し、別シートに転記

    シート1とシート2があり、 シート1のA7がシート2のB列にあり、シート1のB20がシート2のその行のD列の値と同じ場合、シート2該当行のF列の値をシート1のL20に書き込むのですが、どのようにマクロを記述すればいいでしょうか 例えば、 シート1のA7に「A社」、B20に「商品A」があり、 シート2のB10に「A社」が、D10に「商品A」がある場合、F10の値をシート1のL20に返す方法です。 シート2のB列には「B社」や「C社」もあるため、B列の中からシート1のA7と合致する行を検索することになります。

  • クエリの同期処理

    お尋ねします。 アクセス2000でDBを作っています。 全く同じフィールドを持つクエリを2つ作成し、用途に応じて、クエリAとクエリBの2つを使い分けする予定です。 ふたつのクエリは常に全く同じレコードを保持するようにしたいのですが、マクロまたはVBAでどう作ればいいでしょうか? たとえば、クエリAをソースに作ったフォームAでレコードを更新後、クエリBのレコードを同期する。逆に、クエリBをソースに作ったフォームBでレコードが更新されたらクエリAのレコードを同期する。 フォームA、Bそれぞれの更新後処理で同期化を設定すればいいのかなと思いますが、どなたか教えてください。 よろしくお願いします。

専門家に質問してみよう