じゃばのひまつぶし:ExcelVBAによる競馬ソフト自作教室とJRA-VAN登録ソフト(おずたんシリーズ)のサポートサイトです。
JRA-VAN Data Lab対応 競馬ソフト自作教室
<Excelで競馬データベースを学ぼう>
<MyKeiba_JVDB> はじめに
MyKeiba_JVDB
1
(更新:19-07-31)


はじめに
ここではJRA-VAN Data Labのデータ(JVData)を利用した競馬データベースの作り方を解説します。すでに公開中の[JVData-Explorer]では直接JVDataを使って各種データを展開する方法を解説しましたが、ここではSQLを使ったデータベースの基本を学ぶことにします。

目的
(1)JVDataを取り込んだデータベースを作る・・・データベースはAccessの基本形式(mdbファイル形式)を用います。
(2)データベースのデータをSQL文とVBAを使って処理します。
(3)データベースを利用した競馬ソフトを作る・・・データベースを利用して単複オッズ・馬連オッズを基本とした予想支援ソフト。土日分対応のみ。

データベースは多くの種類がありますが、ほとんどSQL(Structured Querry Language)を使って操作が可能です。SQLを理解すれば多くのデータベースの理解が可能かもしれません。といっても作者の私はSQLをほんの少し理解しているだけで、競馬ソフトを作るために必要な部分をかじっているだけです。またSQLでデータベースをすべて操れることでもない(と思う)ので、VBAと組み合わせて最終目的の競馬予想ソフトを作ろうというわけです。

本ソフトの目標は、(1)JVData対応のデータベースを作ること、(2)それを利用して競馬予想支援ソフトを作るの2段階です。データベースの作り方や競馬ソフトの作り方が参考になれば幸いです。
mdb形式のデータベースについて
無料で使えるデータベースはMySQL/SQLiteなどがあり、それぞれExcelとの相性もいいですが、ここではAccess標準のmdbを利用します。理由は
(1)mdbはMySQL/SQLiteのようにインストールしなくてもよく、「宣言(定義)」するだけで使える。
(2)Excelとの相性もいい。参考書が多く出ている。
(3)欠点は扱えるデータの最大サイズが単独のmdbでは2GBと小さいが、工夫次第で大きなデータも扱える。
mdbデータベースは単独ではなく、複数を定義することができるので、分担すれば2GB以上のデータも扱える。JRA-VAN提供の「馬吉」は複数のmdbを使っています。ここでは基本的な理解が目的なので単独のmdbを対象にします。
またテーブルに設定できるフィールド数(項目数)が最大で256個で、オッズ関連のテーブルでは不足ですが、項目をまとめるなどの工夫で対応します。詳細は後述。
(4)Accessがなくてもmdbの中身を操作する事例が豊富。ここではAccessがなくても操作できる方法を学びます。もちろんAccessがあればより便利に操作・確認ができます。
本ソフトの開発手順と概要・・・データベース編と競馬ソフト編の2ステップからなります。
(1)データベース編・・・データベースの作成と競馬データの取り扱い。いわば基礎編。
(a)データベース作成・・・mdbで定義したデータベースとJVData用のテーブルの作成・インデックス設定など。
初期及びメンテナンス時のみ使用。
(b)競馬データ利用・・・毎週土日分のデータを取り扱う方法。蓄積系の過去のデータも一部扱えます。
JVDataを取得し、データベースに登録・削除・更新などを行います。一番メインの機能。
(c)SQL文の練習・・・SQL構文でデータベースの内容を操作する練習ができる。
(注)SQL練習の部分は高橋良明氏の著書「Excelで学ぶMySQL5.0」を参考にさせていただきました。
(2)競馬予想支援ソフト編・・・土日対応の簡単なソフトを作ります。いわば応用編。「競馬データ利用」で登録したJVDataを利用して解析します。データベースのデータを「読み取り専用」で使い、データを書き換えることはしません(できますが)。
(a)開催日の全場所レースの解析サマリシート。開催日の結果一覧表。データマイニング1位の馬や配当結果の一覧。
(b)各場所・各レースの詳細解析。単複オッズの人気順、馬連オッズを基準時刻(午前9時)と最新時刻を比較表示。各馬の前2走分の成績や騎乗騎手の成績を表示。
 本ソフトの動作イメージ(水色の部分をカバーするソフトです)

ダウンロード版・・・全内容を公開していますので、順番に作っていけば完成しますが、ダウンロードもできます。
ダウンロードはタラレバ倶楽部メンバーのパスワードが必要です。まだの方はメンバー登録はこちらから。
完成イメージ
(1)データベース編−1(データベース作成編)
左側がデータベース作成関連のボタン。右側の表にテーブル名の一覧と実際のデータベースの登録状況を示す例(クリックで拡大)。

(2)データベース編−2(競馬データ利用編)
左側がJVData取得・登録関連のボタン。右側に各データの取得・登録状況を示す例(クリックで拡大)。
(a)セットアップデータ表・・・任意の時期からのデータを取得・登録する
(b)今週分データ表・・・土日分のデータの取得・登録。
(c)速報系データ表・・・開催日当日の速報データの取得・登録。

(3)データベース編−3(SQL練習編)
SQLウィンドウにSQL構文を記述して、実行するとテーブルの内容を表示します。
このSQLウィンドウを使うと任意のSQL構文でデータベースの内容を操作する練習ができます。
(注)都合によりこの機能は別ソフト(SQL_MyJVDB)で行います。

下図は「特別登録馬」のデータを表示する実行例の一部
SQL構文:"SELECT * FROM 特別登録馬_TK ;"を実行すると特定のワークシートにテーブル内容を表示する。
(4)競馬予想支援ソフト編−1(レース一覧)
全場所のレース情報を一括表示する画面。レース条件・データマイニングが1位の馬名、各レースの配当結果(馬連・三連複・三連単)などを表示する例。
(5)競馬予想支援ソフト編−2(場所シート)
各場所の1〜12レース分を各場所のシートに表示します。各レースごとに出馬表・単複オッズをまとめ、過去2走分のデータ、馬連オッズ表、配当結果表を表示。
作者の開発環境
(1)Office365 Solo(Excel2016以降相当)で開発していますが、Excel2007以降であれば可能と思います。
(2)パソコン環境・・・Windows10
(3)JRA-VAN Data Lab利用環境必須。利用キーがないとデータを利用できません。

ページトップへ
 Copyright(C):Jaba 2000-