目次
Excel で、 データベースから直接値を取得して表示する方法です。 やり方はいくつかあるのですが、ここでは ODBC を利用して接続します。
環境
- Windows 10
- Excel 2016
- PostgreSQL 9.3
ここではデータベースとして PostgreSQL を使っています。 他のデータベースでも基本は同じです。
Excel からの接続設定作成
まずは ODBC の設定をします。 手順は Windows: PostgreSQL の ODBC を設定する を参照してください。
ODBC を設定すると Excel から利用できるようになります。 (OLE DB でもいいのですが、 ここでは ODBC を使用します。)
Excel 上 で、 設定した ODBC への接続設定を作成します。
「データ」リボンから、 ODBC の接続設定ウィザードを起動します。
データソースとして「ODBC DSN」を選択します。 ODBC は Open Database Connection の略、 DSN は Data Source Name の略です。
次へ進むと、自分の作成した ODBC が見えます。 そのなかから、使いたい ODBC を選択して進めましょう。
するとテーブルの一覧が表示されます。
ここで Connect to a specific table のチェックを外します。 日本語版だときっと違う表記になっています。
これで最後です。 ファイル名と表示名(Friendly Name)を変更する場合は変更して、終了します。 この接続設定は、コンピュータ内にファイルとして保存されることになります。
このあとテーブルを選択するダイアログが表示されますので、このまま続けてもいいですし、キャンセルして終了させてもいいです。 ここでは、キャンセルする手順で進めます。 (続ける場合でも、下と同じ手順になります。)
データ取得
先ほど作成した接続を利用して、データベースから値を取得します。
まず、接続を選択します。 リボンメニューの「データ」にボタンがあります。
そして、先ほど作った接続を選択して、「開く(Open)」をクリックします。
するとテーブルを選択するダイアログが現れます。 ひとつのテーブルから取得するならいいのですが、SQLを書いて出力されるデータを表示したいと考えていますので、ここでは何も選ばず「OK」をクリックします。
データをインポートする最終ダイアログが表示されますが、ここで左下のプロパティボタン(Properties)をクリックします。
「定義(Definition)」タブのSQLのところに、自分が取得したいデータのSQLを記述します。
上で定義していた接続設定とは変更になったので、次のような警告ダイアログが表示されます。 「はい(Yes)」をクリックして進めます。
これで完了なので、OKをクリックしてデータがインポートされるのを待ちます。
設定によりますが、デフォルトの設定で、下記のようにデータがインポートされます。
今回はIDのみを10件取得するSQLでしたから、1列のデータになります。
SQLの変更
SQLが間違っていた場合でも修正可能です。 上のテーブルのところにカーソルを合わせて、リボンメニュー「データ」の中から「接続プロパティ(Connection Properties)」をクリックします。
すると先ほどのSQLを入力するダイアログが表示されます。 SQLを変更して「OK」をクリックすると更新されます。
データの更新
データベースの値が更新されたときは、上のテーブルのところにカーソルを合わせて「すべて更新(Refresh All)」をクリックして最新のデータを取得します。
接続の削除
接続を削除するには、まずリボンメニューのデータから接続のリストを出します。
左下にあるボタン「Browse for More …」をクリックします。
ファイルを選択するダイアログが表示されます。そこに、既存の接続設定ファイルもありますので、右クリックから(またはDeleteキーで)削除します。