投稿

ラベル(DB)が付いた投稿を表示しています

競馬成績表データベースを作る(ツール-HSP編)

イメージ
1.概要 競馬成績表データベースを作るの最終回です。第四弾で 競馬成績表データベースを作る(ツール-Excel編) では、 データベースをExcel VBAにて作成したプログラムで操作しましたが、今回の記事では、HSPスクリプト言語で同等の機能のものを作ります。 実行形式(exe)ファイルとしているので、扱いも簡単でExcel版よりも、やや高速に動作します。HSPに付属しているSQLite3のラッパーモジュールで SQLite3のデータベースを操作できます。 2.ソースコード まずは、raceseiseki.exeを起動します。使い方は、 Yahoo競馬レース成績表検索.xlsm と同様に検索条件の 「競馬場」、「距離」、「コース」のプルダウンをそれぞれクリックして条件を選択します。検索ボタンをクリックすれば、条件にヒットしたものを全件出力します。 出力ボタンをクリックするとカンマ区切りのテキスト形式で出力します。 ソースコードの大部分は画面作成部分であり、実際にデータベースを操作する部分は、154行目から184行目となります。 また、最大抽出件数は、SQL文でLIMIT=20000件と制限しています。ページ制御もしていないので、Excel版と比べて非常にコンパクトです。 実際、筆者は約25万件のデータベースを作成して利用しています。 ;***** (raceseiseki.hsp) ***** #include "sqlele.hsp" ;***** 実行ファイル自動作成 **** #packopt type 0 #packopt name "raceseiseki" #packopt runtime "hsprt" #packopt hide 1 #module #uselib "kernel32.dll" #cfunc CreateMutex "CreateMutexA" int,int,sptr #cfunc GetLastError "GetLastError" ;***** 二重起動防止 ***** #deffunc wexapend str prm1 strname=p

競馬成績表データベースを作る(ツール-Excel編)

イメージ
1.概要 競馬成績表データベースを作るの第四弾です。これまで、作成したデータベースを活用するためには、検索表示などができないと 何の役にも立ちません。今回は、Excel VBAで作成します。当ブログ記事の 「Excelでデータベース(SQLite3)を扱う」 で紹介しているテンプレートとなるソースコードを元にして、検索部分とデータ出力機能を追加しデータが抽出できるようにしたものです。 データベースをしっかり作成していれば、競馬以外の他の用途でも、いろいろと応用の効くものとすることができます。 2.ソースコード まずは、簡単に操作方法を説明します。 Yahoo競馬レース成績表検索.xlsm を起動します。 検索条件のコンボボックスで「競馬場」、「距離」、「コース」の3つの条件を選択して、実行ボタンをクリックします。 抽出対象データがあれば、100件/1ページ単位にデータが表示されます。ページ制御をしていますので、「次ページ」、 「前ページ」、「先頭」、「最終」のボタンをクリックしてページを表示させます。 また、「出力」ボタンをクリックすると、CSV形式で抽出したデータを外部出力できます。「消去」ボタンは、 画面上のデータを強制的に消去するものです。新たな条件で「実行」ボタンをクリックすれば、前処理として 消去(画面クリア)させていますので、通常は操作不要です。尚、 Yahoo競馬レース成績表検索.xlsm の実行には、 SQLite の ODBC とこのプログラムで利用する データベース(pegasus.db) が 必要 ですので事前に準備しておいて下さい。 ThisWorkbook は、ブックを開いた時の初期設定処理をしています。検索条件設定用のコンボボックスに値をセットします。 '***** ブックを開いた時の初期設定処理 ***** Private Sub Workbook_Open() Sheets("成績表").Select Worksheets("成績表").Activate '***** 検索条件用のコンボボックスを設定 ***** ' 競馬場 Dim CBRaceKaisai(10) CBRac

Excelでデータベース(SQLite3)を扱う

イメージ
1.概要 扱うデータ件数が数十万件となると、Excelのシート内では、読み込みにも時間が掛かるし、場合によってはパソコンの性能に左右されて 固まってしまいます。読みんだ後も動作が緩慢で使い勝手が悪くなります。数十万件のデータでも必要な部分は数百から数千件のデータで ある場合が多いものです。このような場合は、データベースを利用するとページ単位の読み込みや必要なデータの検索などが比較的容易に できるようになります。今回は、手軽に利用できる SQLite3 によるデータベースをExcelで扱う方法について紹介します。 2.事前準備作業 ExcelなどからSQLiteのデータベースを扱うには、本体であるsqlite.exeやsqlite.dllなどが必要な場合もありますが、 今回、紹介するものは、色んな言語で汎用的に利用できるODBCドライバをインストールしてデータベースを扱います。 一度、インストールしてしまえば、Excel上ではDSN(データソース)の設定なども必要ありません。 2-1.ODBCドライバーの入手とインストール まずは、ODBCドライバーの入手とインストールです。ODBCドライバーは海外サイトですが、下記のサイトからダウンロードできます。 海外サイトということで怪しいと思われますが、広告や他のサイトへの誘導などはありません。 ダウンロード先 : http://www.ch-werner.de/sqliteodbc/ このサイトの真ん中あたりにCurrent versionという部分の下に2つのodbcドライバーがあります。 sqliteodbc.exeは32bit版で、sqliteodbc w64.exeは64bit版です。WindowsのOSが32bitのものか64bitのものか、また、Excelのバージョンが 32bit版なのか64bit版なのか判断に迷います。 ※(どれを選択すれば良いか筆者には適切に指示するこはできません) 両方インストールしても問題なさそうですが、たぶん、利用しているExcelのバージョンによるものだと思います。 筆者は、Windows10の64bit版で、Excelも64bit版なので、sqliteodbc w64.exeをダウンロードしてインストールしました。 ダウンロードしたら、

TOP