• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access2002で後から前日比増減を追加する方法ありますか?)

Access2002で後から前日比増減を追加する方法ありますか?

このQ&Aのポイント
  • 百万件を越える日別/銘柄別レコードにある終値のフィールドを使って前日比増減のフィールドを追加する方法がないか教えてください。
  • 増減のフィールドを使って値上り、値下り銘柄数から求める指標を作成するため、現在上場されている株価データは問題ありませんが、廃止銘柄のデータを収集すると増減がありません。
  • 数万件ならExcelで計算した後で取り込みもできますが、百万を超えるデータなのでAccessで増減を計算できるかどうか知りたいです。

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

  • ベストアンサー
  • tksoft
  • ベストアンサー率36% (99/273)
回答No.1

まず、前日比増減フィールドは株価テーブルに追加でいいのでしょうか。 その場合の前日比増減の値の計算ですが、VBAを使ったほうが簡単だと思います。 (1)銘柄テーブルを開く(この時点で、銘柄レコードのカレントレコードは先頭になっています) (2)銘柄テーブルのカレントレコードを取得し、株価テーブルから当該銘柄のデータを抽出する。このとき日付で昇順に並べ替えておく 例:SELECT * FROM 株価テーブル   WHERE 銘柄コード = (銘柄テーブルのカレントレコードのコード)   ORDER BY 日付 (3)(2)で抽出したレコードセットのN+1行目の終値からN行目の終値を引きN+1行目の前日比増減フィールドに入力する。(但し、N = 1,2,3・・・) (4)銘柄テーブルのカレント行を1つ進め、(2),(3)を繰り返す。但し、銘柄テーブルが最終行まで行ったら処理終了。 とりあえず、こんな感じでどうでしょう。 初心者と言ってもどの程度のレベルかさっぱりわからないのでとりあえず考え方だけ書いてみました。不明な点はまたご質問ください。

HAL007
質問者

お礼

大変貴重な回答を頂きありがとうございました。 銘柄テーブルを使って、比較のキーを減らすアイデアは 思いつきませんでした。 VBAは、Accessマクロ&VBAのQAがあるサイトで コーディングしてくれた方が現れたので解決しました。

HAL007
質問者

補足

回答ありがとうございます。 >>初心者と言ってもどの程度のレベルかさっぱりわからないのでとりあえず考え方だけ書いてみました。 紛らわしい事を書いて混乱させて申訳ありません。 VBAは、本のサンプルを見ながら、独自のExcel関数を作った事がある程度です。 多分、サンプルがあればどうにかなるのではと思いますので 参考になる様なものがありましたら教えて下さい。 又、作成したVBAの使い方(クエリに組込むのか、直接モジュールを実行させるのか) も教えて下さい。 質問が舌足らずだったので条件を追加します。 前日比増減がない株価テーブルのデータに増減を計算して 既に、増減があるテーブル(マスター)にレコード単位で追加する 方法を考えています。 お手数ですが教えて下さい。