今年もやってきました、Advent Calendar。
私の番では、FileMaker Pro 16を中心にお送りします。
と言っても、あまりバージョンを意識しなくても実装できるものが多いので、記事を読んだ後は是非とも実装してみてくださいね。
今日は、FileMakerを意識せずに、FileMakerのデータをExcelに取り込む、というタイトルです。
FileMakerからデータをエクスポートするのはFileMaker屋さんがするっと考えることですが、そうでないIT屋さんやExcel屋さん(あえてIT屋さんと切り離しました)は、FileMakerは敷居が高いのではないでしょうか?
そこで、Excelに標準搭載されているODBCデータインポート機能を使ってFileMakerのデータを取得しよう、ということになります。
かつ、今回は、FileMaker Serverを使わずに、PCで使っているFileMaker ProのデータをそのままExcelに持ってきます。
前提条件
今回の用意するものは、以下になります。
・Windows PC
・Excel(ODBCデータインポート機能がついているバージョンであれば大丈夫かと)
・FileMaker Pro
・FileMaker ODBC
Windowsと限定したのは、理由があります。
それは、
Windows版のExcelでないと、FileMakerの現バージョンが扱えない
ためです。
Excel for Macは、fp7拡張子のFileMaker 11以前のものでないと扱えません。
この辺は、Microsoftになんとかしてもらいたいのですが、そんなこと言ってると進まないので今回はWindowsで環境を整えました。
ODBCの準備
異なるDBとのやりとりを実現する手段として、ODBCが選択肢として挙げられます。
今回は、FileMakerのインストールメディアで提供されいてるODBCドライバを使います。
Windowsへのインストール方法は、ODBCとJDBCガイド をご覧ください。
このPDFの13ページに、「ODBC クライアントドライバのインストール (Windows)」とあります。
すでにODBCをインストール済みの場合は、作業なしです。
FileMakerファイルのアカウント準備
アクセスするFileMakerのファイルで、ODBCからのアクセス用のアカウントを作成します。
このアカウントを使って、接続します。
このアカウントでは、「ODBC/JDBCによるアクセス」という権限を付与しておいてください。
これがないと、アクセスがはねられます。
ODBCデータソース(DSN)を作成する
Windowsに標準で装備されている、ODBCデータソースアドミニストレーターを使って、DSNを設定していきます。
PCにログインしている人が全員使える、システムDSNで今回は作成します。
今回は、同一PC内にあるFileMakerからデータを取得するので、localhostのまま、続けます。
最後に、テストボタンが出てきます。
FileMakerのファイルを立ち上げ、先ほどFileMakerで設定したアカウントのid,passを指定して、FileMakerにアクセスできることを確認してください。
FileMakerからデータを取得する
では、やっとFileMakerからExcelにデータを取り込みます。
まずは、FileMakerのファイルを開いておいてください。
FileMakerのファイルが閉じている場合、ODBC接続をした時に次のキャプチャのようなODBCエラーが発生して、データの取得に進めません。
では、FileMakerのファイルを開いたところで、続きです。
Excelの「データ」タブで、「ODBCから」をクリックし、先ほど設定したデータソースを選択します。
アクセスに成功すると、どのデータをダウンロードするか、ナビゲーターが表示されます。
ダウンロードするテーブルを選択します。
今回は、KEN_ALLというテーブルになります。
データのプレビューが出てくるので、「読み込み」ボタンをクリックします。
取得するデータの条件を設定する
テーブル全部のデータを取得する、というのは、実は稀なんではないでしょうか?
例えば、月別データやエリア別データなど、欲しいデータの条件を設定したいですよね?
ODBCデータ取得をマクロ登録してみると、普通に「読み込む」だけだとselect allしているのがわかります。
なので、ステップアップとして条件を指定してデータを取得してみます。
データをプレビューした時に、「読み込み」ボタンの横に「編集」というボタンがあります。
これを、クリックします。
例えば、東京都のデータのみを抽出する場合です。
このように、Excelを使っていればよくみるフィルター機能を使って条件を指定できます。
条件を指定し終わったら、「閉じて読み込む」をクリックして、取り込みます。
いかがでしたでしょうか?
今回のこの実装をマクロ化してボタンにしておくと、一発で欲しいデータが取得できますよ。
FileMakerを使い慣れなくても、FileMakerのデータを活用できますので、ぜひやってみてください。