index †
Excel上で動作する手軽なデータベース操作ツール †
「Excel-addin.dbtalk」は開発者向け汎用*1のデータベース操作ツールです。
Excelアドインとしてデータベース上のデータ閲覧・更新を実現、導入もExcelメニューのツール-アドインからファイルを指定するだけで簡単に行えます。
Excel単体で完結するダイレクトな操作感、ラフな抽出からExcelフィルタを駆使しての再絞込みなど、
Excelをベースに据えた使い勝手は他ツールとの一線を画します。
このサイトでは「Excel-addin.dbtalk」の操作方法などについて解説しています。
汎用のデータベース操作ツール「Excel-addin.dbtalk」最新版ダウンロードについてはこちら。
操作方法 †
データベースへの接続 †
メニューから「接続/切り替え」を選択します。
「接続/切り替え」フォームが表示されます。
「新規」ボタンを押下します。
「OLE DBプロバイダ」を選択します。
この例ではODBCドライバ経由の設定を採用しています。*2
「次へ」ボタンを押下します。
データソース、ユーザー名、パスワードを指定します。
必要に応じ「パスワードを保存する」チェックボックスをオンにします。
「OK」ボタンを押下します。
必要に応じ「名称」を変更します。
「接続」ボタンを押下します。
パスワードを保存しない設定の場合、「ログイン」フォームが表示されます。
ユーザー名、パスワードを入力し「OK」ボタンを押下します。
- あらかじめOLE DBドライバ(ODBCドライバでも可)をインストールしておく必要があります。各データベースの公式サイトなどから入手可能です。
- 接続から10分間放置すると自動的にデータベースから切断状態となります。
データの抽出 †
データを抽出するにはまずテーブルの一覧を取得する必要があります。
メニューから「テーブル一覧の取得」を選択します。
テーブル一覧が出力されます。
必要に応じ抽出条件やソート条件を指定します。
"where"や、"order by"を含めて記述してください。
ソート条件を指定しない場合、主キーによるORDER BY句が補完されます。
対象のテーブルを含む行(列は任意)を選択し、メニューから「データの抽出」を選択します。
複数行の選択が可能です。
テーブル名のシートにデータが出力されます。
テーブル名のシートをアクティブにし、メニューから「データの抽出」を選択した場合でも同様にデータの抽出が可能です。
必要に応じ「抽出条件(WHERE句など):」に抽出条件やソート条件を指定します。
"where"や、"order by"を含めて記述してください。
メニューから「データの抽出」を選択します。
この場合「データの抽出」フォームが表示されます。
「抽出」ボタンを押下します。
| № | 項目 | 説明 |
|---|
| 1 | 「抽出」ボタン | 「抽出条件(WHERE句など):」に指定の条件でデータを再抽出します。 |
| 2 | 「選択抽出」ボタン | 選択セルへデータを再抽出します。複数セルの選択が可能です。 |
- プログラムにより作成されたシート(テーブル名のシートなど)の削除、コピー、リネームは、いつでも問題なく実施可能です。
- 抽出結果が6万件を超過した場合、表示は打ち切られます。条件を指定し件数を調整してください。
- データ型名には汎用的な名称を採用しているため、実際の名称とは異なります。
- 大きいデータの抽出時、オートメーションエラーとなる場合があります。これはExcelによる一括データ処理時、1セルあたりの文字数に上限があるためです。
Excel各バージョンごとの上限文字数は、Excel2000:914文字、Excel2002/2003:911文字、Excel2007:8203文字となります。
(処理可能文字数であり、通常のセル入力文字数ではありません。)
データの操作(データベースへの反映) †
テーブル名のシート上で、更新対象の行(列は任意)を選択します。
複数行の選択が可能です。
メニューから「データの操作」を選択します。
「データの操作」フォームが表示されます。
目的に応じたボタンを押下します。
| № | コントロール | 説明 |
|---|
| 1 | 「更新」ボタン | 選択レコードを更新します。 すべての列を更新します。 主キーが存在しないテーブルでは無効化されます。 |
| 2 | 「挿入」ボタン | 選択レコードを挿入します。 |
| 3 | 「削除」ボタン | 選択レコードを削除します。 シート上からは削除されません。 主キーが存在しないテーブルでは無効化されます。 |
| 4 | 「選択更新」ボタン | 選択セルのみを更新します。複数セルの選択が可能です。 主キーが存在しないテーブルでは使用できません。 |
| 5 | 「データは操作せずにSQLのみ作成」チェックボックス | SQL作成機能を提供します。 押下ボタンに応じたSQLを作成し、クリップボードに転記します。データベースに対する操作は行われません。 |
- 更新系の処理は自動的にコミットが発行されますが、エラーの場合はロールバックされます。
トランザクションの単位はボタン押下毎です。
SQL入力フォーム †
メニューから「SQL入力フォーム」を選択します。
「SQL入力」フォームが表示されます。
SQLを入力します。
複数のSQL文を記述可能です。「SQL終端」プルダウンでSQLの終端となる区切り文字を指定できます。
「実行」ボタンを押下します。
- 更新系の処理は自動的にコミットが発行されますが、エラーの場合はロールバックされます。
トランザクションの単位はボタン押下毎です。
- プログラムにより作成されたシート(テーブル名のシートなど)の削除、コピー、リネームは、いつでも問題なく実施可能です。
- 抽出結果が6万件を超過した場合、表示は打ち切られます。条件を指定し件数を調整してください。
- 「簡易整形」については場合によって意図しない結果となることがあるためご了承ください。
- データ型名には汎用的な名称を採用しているため、実際の名称とは異なります。
- 正常に実行されたSQLのみ履歴として保持します。なお、長めのSQLは履歴に残らず破棄される可能性があるためご了承ください。
SQLファイルの実行 †
メニューから「SQLファイルの実行」を選択します。
SQLファイルを選択します。
ファイルには複数のSQL文を記述可能です。「SQL終端」プルダウンでSQLの終端となる区切り文字を指定できます。
「OK」ボタンを押下します。
- 最終的にコミットが発行されますが、1件でもエラーが発生した場合は全てロールバックされます。
選択2シートの比較 †
比較したいテーブル名の2シートを同時に選択します。
双方のシートのデータは主キーにて昇順ソートされていることが前提です。
また主キーが存在しないテーブルは比較できません。
メニューから「選択2シートの比較」を選択します。
「OK」ボタンを押下します。
相違箇所が着色されます。
ショートカットキー †
使用頻度の高い操作にショートカットキーを対応付けています。
| № | 操作 | ショートカットキー | 特記事項 |
|---|
| 1 | データの抽出 | Ctrl+Q | テーブル一覧からの抽出、テーブル名のシートからの再抽出両方に対応します。 |
| 2 | データの操作 | Ctrl+U | - |
注意事項 †
- タイムスタンプ型のデータが秒の精度に丸められてしまいます。
特にデータの操作時に問題となる場合があります。
- 処理速度優先で動作させているため、意図的に抽出しないデータ型があります。(選択抽出では抽出できる場合があります。)
バイナリ型やラージオブジェクト型などですが、これらは「(fail)」と表示されデータの操作時は無視されます。
- 文字列型については空文字と区別するためNULLは「(null)」と表示されますが、その他の型は「(null)」の表示はされません。
インストール/アンインストール †
配布アーカイブに含まれる「dbtalk.xla」を任意の場所に配置します。
Excelメニューの「ツール」-「アドイン」を選択します。
「アドイン」フォームが表示されます。
「参照」ボタンを押下します。
「dbtalk.xla」を指定します。
「アドイン」フォームの「Dbtalk」のチェックを入れ「OK」ボタンを押下します。
以上でインストールは完了です。
アンインストールの場合は「アドイン」フォームの「Dbtalk」のチェックを外し「OK」ボタンを押下します。
この手順を省略した場合、ツールバーが削除されないのでご注意ください。
ファイルシステムから「dbtlak.xla」および「dbtalk.ini.xls」を削除します。
再度「アドイン」フォームの「Dbtalk」をチェックすると下記メッセージが表示されるため「はい」ボタンを押下します。
以上でアンインストールは完了です。
データベース製品固有のメモ †
Oracle †
- オラクルClient製品を導入しない(ODACのみ導入)場合、次の接続文字列も設定可。
<接続先ホスト>:<ポート番号>/<データベースサービス名>
例:
oraserver:1521/oradb
MySQL †
- DBMSのデフォルト設定では1SQL文ごとの自動コミットとなっているためご注意ください。
また、テーブルタイプを明示的に「InnoDB」に指定していない場合、トランザクションが有効になりませんでした。
DB2 †
- DB2のOLE DBについて、デフォルトではCHAR型とGRAPHIC型がプログラム上区別されません。
これを解決するには、DB2構成パラメータ設定ファイルdb2cli.iniの、該当データソースのセクションに次の一行を追加します。
OleDbReturnCharAsWChar=0