Accessの活用例として株価データを蓄積し、これらデータから株価指標を計算するクエリを作成する方法をシリーズとして紹介しています。今回は第3回目としてAccess VBAから株価データを取得するPythonプログラムを実行して得られたCSVファイルをAccessへインポートする方法を紹介します。
なお、第2回目までに株価データをCSVとして取得するところまでを紹介してきましたので、以下の記事もご参考にしてください。
テーブルの作成
株価データをAccessにインポートするにあたり、まずはテーブルを作成します。
「T_株価」テーブルを新規に作成し、表1に示すようにフィールド名、データ型を設定します。
表1 「T_株価」テーブルの構成
フィールド名 | データ型 |
企業コード | 数値型(長整数型) |
取得年月日 | 日付/時刻型 |
株価 | 数値型(単精度浮動小数点型) |
なお、企業コードはリレーションの際に必要な情報となりますので、インデックスを「はい(重複あり)」として設定してください。
データの容れ物であるテーブルが用意できたので、インポート処理をしていきましょう。
インポート定義の設定方法
今回の処理では、ルーチン処理として決まった形式のデータを定期的に取得するためインポート定義を設定します。
まずは、図1に示すように「外部データ」タブの「新しいデータソース」を選択します。
続いて、「ファイルから」→「テキストファイル」の順に選択します(図2)。
図3で示すように、「ファイル名」には本シリーズの第2回目で作成した「YYMMDD_StockValue.csv」ファイルのパスを設定します。
「現在のデータベースの新しいテーブルにソースデータをインポートする」を選択し、「OK」をクリックします(図3)。
テキストファイルのインポートに際しては、区切り記号付きとしてインポートする場合と固定長としてインポートする場合がありますが、今回作成されるcsvファイルは「タブ」で区切られるファイルとなるため、図4に示すように「区切り記号付き」を選択し、「次へ」をクリックします。
区切り記号付きのファイルであるため、区切り記号の設定、データインポートを開始する行を設定します。図5に示すように、今回の場合は区切り記号を「タブ」、「先頭行をフィールド名として使う」にチェックを入れ、インポート定義の設定を行うため「設定」ボタンをクリックします。これら操作の際に、図6に示すメッセージボックスが出た場合は、「OK」をクリックしてください。
インポート定義を設定する画面の内、「フィールドの情報」欄で取り込むデータのフィールド設定を行います。主には、フィールド名、データ型及びインデックスの設定で、先ほど作成した「T_株価」の条件設定に合わせます。
フィールド情報の設定ができた後、インポート定義を保存するため「保存」ボタンをクリックします(図8)。
インポート/エクスポート定義の保存のボックスが表示されるため、今回は定義名を「StockValue インポート定義」として「OK」をクリックし(図9)、図8に示す画面に戻った後「OK」をクリックします。
これでインポート定義の設定がされ、図5で示されていた内容から図10に示すように一部の内容が変更されていることが分かります。
インポートする際の各フィールドの設定画面が表示されますが、先のインポート定義で設定は済んでいるため、そのまま何も変更せずに「次へ」をクリックします。
このインポートウィザードでは新規テーブルを作成していますが、新規テーブルを作る際に主キーを設定することで、レコードの一意性を確保することができます。このため、主キーを設定するか、否かの画面が表示されますが、今回は「主キーを設定しない」を選択し、「次へ」をクリックします(図12)。
以上でインポート設定が完了し、インポート先のテーブル名を入力することになりますが、今回は変更せずに、そのまま「次へ」をクリックしてください(図13)。
最後に、これまで行ったインポート操作を保存するかを問われますが、今回は保存せず、「閉じる」をクリックしてください(図14)。
さっそく出来上がった「220430_StockValue」テーブルを開くと、csvファイルと同じ情報が保存されていることが分かります。
以上が、csvファイルのインポート定義を設定する方法となります。なお、今回は区切り記号によるcsvファイルのインポート設定でしたが、固定長csvの場合等、条件に応じて都度設定もカスタマイズしてください。
インポート定義の再利用
さて、インポート定義を設定しましたので、これを再利用する方法を次に見ていきましょう。
「T_株価」テーブルを作成していますので、ここにインポート定義を用いてcsvファイルのデータをインポートする方法を例とします。
図1、2で紹介したところまでは同じですが、その後の設定が少し異なります。
図16で示すように、インポートするcsvファイルのパスを設定した後、「レコードのコピーを次のテーブルに追加する」を選択し、「T_株価」テーブルを設定します。そして、「OK」をクリックします。
テキストインポートウィザードとしてファイル形式の確認画面が表示されるため、「設定」をクリックします(図17)。
ここで、インポート定義画面が表示されるため、先に保存していた「StockValue インポート定義」を呼び出します。図18に示すように「定義」ボタンをクリックします。
インポート/エクスポートの定義の画面が表示されるため、先に保存していた「StockValue インポート定義」を選び、「開く」をクリックします。
これにより図20に示すように、フィールドの情報が変わっていることが確認できます。
以降の操作は、先と同様となりますが、最後にインポート先のテーブルの確認画面が表示されます(図21)。
最後に、「T_株価」テーブルにデータがインポートされていることを確認します。
図22に示すように「T_株価」テーブルを開くと、csvファイルと同じ情報が保存されているが確認できます。
まとめ
今回はAccessへcsvファイルをインポートする際の定義設定及びインポート定義の再利用方法について紹介しました。ルーチン処理の場合、一度インポート定義を設定しておくことで、次回の処理がとても簡単に実行することができますので、業務効率の改善方法として活用してみてはいかがでしょうか。
Accessでデータベースを作成するにあたって、専門書も参考になりますので、お手元に用意されるといざというときに非常に便利です。
スポンサーリンク
コメント