• 締切済み

Access VBA パススルークエリ

Access2000(VBA)にてパススルークエリを生成してOracleのデータを取得しようとしております。 結果は正しく取得できるのですが、取得にかかる時間が非常に遅くて困惑しております。 SQL*plusやObjectBrowser等でSQLを実行すると2秒程度で結果が返るのですが、 Accessのパススルークエリですと60秒程度かかります。 SQLの内容は以下のように集計するものになります。 どなたか、改善方法が分かる方がいらっしゃればお教え下さい。 以上です。 SELECT A.請求先コード 請求先CD, B.会社名 請求先名, 20140401 集計開始日, 20140431 集計終了日, SUM(A.合計金額) 合計金額_合計, SUM(A.消費税額_外税) 消費税額_合計, (SUM(A.合計金額) + SUM(A.消費税額_外税)) 税込合計金額_合計, SUM(D.入金額) 入金額_合計, ((SUM(A.合計金額) + SUM(A.消費税額_外税)) - SUM(NVL(D.入金額,0))) 未入金額_合計 FROM 売上_TRN A, 顧客先_MST B, 入金_TRN D, 顧客_TRN E, 顧客_TRN F WHERE A.請求先コード = B.顧客先コード AND A.顧客先コード = E.顧客先CD AND A.請求先コード = F.顧客先CD AND A.売上日 Between 20140401 AND 20140431 AND A.売上NO = D.売上NO(+) AND (nvl(A.摘要コード1,' ') <> 'DM') AND A.赤伝NO = ' ' GROUP BY A.請求先コード, B.会社名 ORDER BY A.請求先コード

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> SELECT A.請求先コード 請求先CD, B.会社名 請求先名, > GROUP BY A.請求先コード, B.会社名 > ORDER BY A.請求先コード GROUP BY 1, 2 ORDER BY 1 としたらどうなりますか? SELECTで別名付けたなら、Whereでも統一したほうが良いかも。

関連するQ&A

  • Accessでの外税・内税

    Accessで請求書を作りました。 まず、フォームでサブフォームを組み込み、内訳を入力し、合計金額・消費税・税込合計金額のテキストボックスに自動的に数字が入るように作ってみました。請求書ごとに内税の物と外税の物があるので、外税と内税のコマンドボタンを作成し、どちらかをクリックすると、消費税のテキストボックスに消費税額または"税込価格"と表示され、合計金額のテキストボックスに消費税込の金額または合計金額をそのまま表示するという設定をしました。 こんな感じで↓ Private Sub コマンド26_Click() Me!消費税 = Me!合計金額 * 0.05 Me!税込合計金額 = Me!合計金額 + Me!消費税 End Sub Private Sub コマンド29_Click() Me!消費税 = "税込価格" Me!税込合計金額 = Me!合計金額 End Sub フォームではうまく表示されるのですが、レポートになると、「#Name?」と表示されてしまいます。 レポートでは消費税のテキストボックス=Forms!F請求書!消費税 税込合計金額のテキストボックス=Forms!F請求書!税込合計金額 と入力してあります。 フォームを開くと消費税と税込合計金額のテキストボックスには常に何も表示されてなくて、外税・内税のボタンを押さないと金額が表示されないのでそのせいでしょうか? また、このやり方ですと、どちらかのボタンを押すたびに全部のレコードが内税のみ、外税のみになってしまい、請求書発行後に金額が変わってしまいます。 請求書番号ごとに内税・外税の金額を残したいのですが、そんなことは可能でしょうか? 独学で本を見ながら作っております。 VBAとかほんとによくわからないので初学者でも簡単にできる方法がありましたらぜひお願いします。

  • Dsumで集計した値が変化してしまいます

    Accessで請求書を作成しています。 メインフォームに顧客TBのデータを表示させ サブフォームに顧客毎の売上入金明細を表示させています。 メインフォーム上に入金合計、売上合計、値引き合計の 非連結テキストボックスを作り、それぞれに売上入金明細のデータ集計を表示させるように作成中です。 このフォームをOpenした時は集計値はOKなのですが 顧客レコードを切替させると、売上が無いのに売上集計されたり、売上があるはずの集計がされなかったりします。 サブフォームには明細が正常に表示されています。 顧客を切替える毎に再計算させるイベントを作っています。 (現在記述している例) Me!入金合計=Dsub("合計","Q_請求明細","顧客ID=[Forms]![Q_請求先]!顧客ID and 区分='入金'") Me!売上合計=Dsub("合計","Q_請求明細","顧客ID=[Forms]![Q_請求先]!顧客ID and 区分='売上'") Me!値引合計=Dsub("合計","Q_請求明細","顧客ID=[Forms]![Q_請求先]!顧客ID and 区分='値引'") ご指導宜しくお願いします

  • SQL2005 ストアドUPDATEについて教えてください。

    SQL2005 ストアドUPDATEについて教えてください。 顧客マスタと、売上データがあり、顧客毎の売上データの売上金額の合計を 顧客マスタの累計金額にUPDATEする方法を教えてください。 顧客マスタ・・顧客コード、累計金額 売上データ・・売上日、顧客コード、売上金額 update 顧客マスタ set 累計金額=(select sum(B.売上金額) from 売データ as B where 売上日付>='2010/03/01' and 売上日付<='2010/06/30' group by B.顧客コード) from 顧客マスタ as A,売上データ as B where A.顧客コード=B.顧客コード サブクエリは複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後に続く場合や のエラーが出たり、期間中のすべての顧客の売上合計がセットされたり思うようになりません。 どなたか教えてください。 宜しくお願いします。

  • 総平均法について(消費税の考え方がわからない)

    総平均法は「仕入金額合計÷仕入数合計」で算出しますが、 この「仕入金額合計」は消費税込みで考えるものなのでしょうか? Aという商品があったとして 原価は105円(内税)ですが、取引先によっては外税として仕入れることもあり、 同様に、顧客によって内税として売ったり外税として売ったりする事があったりする場合、 (100円+外税ですね) どういう計算になるのでしょう? よくわかってないようで、文章がアバウトなのは承知なのですが、よろしくお願いします…。

  • Accessの計算について教えてください

    こんにちは・・。 今、顧客管理をアクセスで作っています。 売掛金の管理もしたいのですが、売上、入金の入力して現残高がわかるようにしたいのです。 顧客の入力(住所、電話番号、等)画面の下にサブフォームで作ったのですが、 ・・・サブフォーム()・・・ オートナンバー 日付 顧客ナンバー 売上項目 売上金額 入金金額 残高 ってありますが、売上金額と入金金額が入力されると、残高に表示できるように したいのです。 SUMを使ってしましたが、残高は確かに表示されますが、 (1)売掛金を、5000円入力 → 残高は、5000円になりいいのですが、 (2)売掛金を、1000円入力 → 残高 6000円 でも、SUMなので(1)の残高も6000円になってしまします・・。 (1)の残高は、5000円で (2)の残高は、6000円にしたいのです・・・。 サブフォームでは無理ですか?? 説明下手でごめんなさい・・。 宜しくお願いします。

  • アクセスで可能でしょうか?初心者です。

    売上先で、(1)末締め翌末入金 (2)末締め翌月20入金 (3)末締め25入金 (4)20締め翌月末入金 の売上先が4パターンあるとして、 テーブル(T得意先情報)売上ID 売上先名 請求締め日  テーブル(T請求書)請求ID 売上先名 売上ID 請求年月     日 請求金額 テーブル(T入金)請求ID 請求金額 入金額 入金予定日  と考えとりあえずテーブルを作成しました  (1)入金日まで30or31 (2)20 (3)25 (4)40or41or42 売上先請求日付(1)~(4) (1)~(3)の請求日が1/31(4)が1/20とした場合テーブル(T入金)で、 2月の(28)月末の入金額、 20の入金額、25の入金額、 3月10の入金額 の入金年月日の件数と金額を求めたいのですが、うまくいきません。 クエーりーで入金ベースのサイト(末,20,25,40)を作れば何とかなるのかな?んんどうやったらよいの・・・ リーレーションがとても難しいと考え込んでしまい先に進みません。 構築方法+具体的な日付ごとの合計金額初心者の私に 理解できるようどなたか教えてくださいますよう お願いいたします。 ちなみに私経理の仕事しかしたことがないので、質問の内容がアクセス経験者の方々に伝わるよう な質問かどうか少々不安ですが、よろしくお願いします。

  • Access2003 フォームについて

    Access初心者です。ご存知の方がいらっしゃいましたら教えて下さい。 内税と外税の計算について 現在請求書を作成するmdbを制作しております。 メインフォームに「小計」、「消費税」、「合計」という項目があります。 それぞれの詳細は以下のとおり。 ●「小計」のコントロールソース→=[Q-請求明細 サブフォーム]!合計金額 ●「消費税」のコントロールソース→=[小計]*0.05 ●「合計」のコントロールソース→=[小計]+[消費税] 同じメインフォーム上に「内税」と「外税」というオプションボタンを配置して、 「内税」にチェックを付けた場合は、「消費税」が計算されない。 「外税」にチェックを付けた場合は、「消費税」が計算される。 このような仕様にしたいと思い作っているのですが、どのように作成すると良いか 分かりません。 ご存知の方がいらっしゃいましたら是非教えて下さい。 不足箇所がありましたら追記致します。

  • Accessでの売掛金の管理に関して

    Access売掛金の計上及び入金の管理行いたいと考えていますが 下記のようなことは実現できますでしょうか。 (1)得意先 (2)4月分売上 (3)入金日付 (4)入金金額 (5)4月売掛残高 (6)備考         (3)入金日付 (4)入金金額 (5)4月売掛残高 (6)備考        (3)入金日付 (4)入金金額 (5)4月売掛残高 (6)備考 (2)5月分売上 (3)入金日付 (4)入金金額 (5)5月売掛残高 (6)備考 (2)6月分売上 (3)入金日付 (4)入金金額 (5)6月売掛残高 (6)備考    : (2)3月分売上  (3)入金日付 (4)入金金額 (5)3月売掛残高 (6)備考                    売掛残高合計 ※(2)の各月売上は期首から期末まで順番に表示される ※(3)と(4)の入金関連項目に関しては消しこみ対象の各月売上の行に表示される。  例えば3月分売上が6月に入金があった場合は入金関連項目は6月分売上の行ではなく  3月分の行に表示される。 ※入金は通常のサイトで回収される場合以外に一部入金(例えば3月分は3回にわたって  入金されている。)、過剰入金、過小入金等があるので各月の売上が1行であるのに  対して入金関連項目は複数行にわたる。⇒詳細に関して備考欄で説明を設ける。 ※(5)の各月残高はあくまで各月の売上の回収状況であって得意先ごとの残高総合計は  売掛金残高合計として最終行等に表示されるようにする。 マスターとして ■得意先マスター (1)得意先コード(2)得意先名 ■部署マスター  (1)部署コード(2)部署名 ■売上科目マスター (1)科目コード(2)科目名 ※上記の表の各月売上の詳細として科目ごとに表示することができるかどうか。 (1)売上1 (2)売上2 (3)売上3…(4)消費税 といった具合に各月の合計値としてだけでなく詳細表示が可能かどうか。 上記の表は各科目の合計値となっている。 とりあえず他にも実現したいクエリがありますが 話が複雑になってしまいますので 上記のようなことがAccessで実現可能なのかどうか その場合どのような方法があるのかどうか。 その方法を行うにはどの項目の知識が必要なのかどうか。 何かヒントでも構いませんので多くの方のアドバイスを頂けたらと思います。 大変お手数ですが宜しくお願いします。  

  • 弥生会計での売掛入力について

    はじめまして。 過去に同じ質問があったらすみません。 前期は売掛金の入力を伝票処理で行ってきました。 借り方         貸し方 売掛金10,000    売上高 10,000 消費税500      消費税  500  売上5%外税     売上5%外税 伝票上での合計額は10,500ですが 伝票を閉じた後、売掛帳の売上金額表示はは10,000のままです。 今期になり、簡単取引入力というのを使って 売掛金入力をするようになりましたが、 今期の売掛帳の売上金額はしっかり10,500と表示され 入金処理を行うと残高はしっかり0となります。 質問は 前期で入力してきた売上金額は、消費税が売掛帳に出てきていない為 今期に入り、前期の消費税分の額がすべてマイナスで数字が降りてきてしまいます。 どうしたら±0になるのかわかりません。 へたな文章で申し訳ありませんが、ご回答の程宜しくお願い致します。

  • ACCESSレポート グループフッターの計算結果をレポートフッターで使う

    いつもお世話になっております。 「部署」「商品」「金額」の3フィールドからなるテーブルを元に、下記のようなレポートで消費税を計算させようとしています。(実際はもっと項目は多いです。) =============『詳細』 部署_商品_金額 =============『部署グループフッター』 ="部署計"__部署合計 ←=Sum([金額]) ="消費税"__部署消費税 ←=[部署合計]*0.05 ="請求額"__部署請求額 ←=[部署合計]+[部署消費税] =============『レポートフッター』 ="全体計"__全体合計 ←=Sum([金額]) ="消費税"__全体消費税 ←=Sum([部署消費税]) ="請求額"__全体請求額 ←=Sum([部署請求額]) レポートフッターの =Sum([部署消費税]) =Sum([部署請求額]) この2箇所がエラーになってしまいます。ヘルプを見るとそういうSumの使い方は出来ないようなことが書かれていました。 やりたいことは分かっていただけたでしょうか。 要するに部署ごとに消費税を出し、全体では各部署の消費税を加算したいのです。 今は仕方がないので部署ごとの消費税を出した別テーブルを用意しておいて、部署をキーにDsumで求めていますが、このやり方は気に入りません。 レポートの中だけでうまいやり方はないでしょうか。 ACCESS2000です。 よろしくお願いします。

専門家に質問してみよう