BaseとCalc間でデータ移行するには

Base

Baseのテーブルに登録したデータをCalcに移行したり、Baseのクエリーを実行して得た結果をグラフ化するためにCalcに移行するなど、Base⇔Calc間のデータのやり取りを行う方法を紹介します。

なお、下記の検証用サンプルファイルを用意しましたので、検証される方はダウンロードし、解凍した上でお使い下さい。
データ移行サンプル.zip

BaseからCalcへのデータ移行

まず、フォルダー「データ移行サンプル」に格納されたデータベースファイル「公共施設1.odb」を開きます。
「公共施設1.odb」には2つのテーブルがあり、下図のようにそれぞれのテーブルには幾つかのレコードが登録されています。また、クエリーオブジェクトが一つ登録されています。

次に、データの移行先として、Calcを新規に開いておきます。カーソルはセルA1を指定しておいてください。
下図のように、データ移行するテーブル「公民館マスター」をダブルクリックで開きます。

全データを指定する領域(上図の赤い線で囲った領域)をクリックします。
すると、下図のように青く反転して全レコードが指定された状態になりますので、アイコン「コピー」をクリックします。

次に、開いておいたCalc編集画面のアイコン「貼り付け」をクリックします。(下図参照)

すると、下図のように全データがCalcのシート上に貼り付けられます。(列幅は調整してあります。)
下図の赤い破線の領域に注目して下さい。Baseの列名も貼り付けられていますが、残念ながら列名の全角文字には対応していないため文字化けしています。1行目を削除した上で新たに行挿入し、列名に相当する行を新たに手入力して下さい。

下図が列名に相当する行を手入力した状態です。また、シート名を「東京都公民館マスター」に変更しました。
次にアイコン「」をクリックし、シートを追加して下さい。今回もカーソルはセルA1を指定しておきます。

Baseのクエリーオブジェクト「クエリー_図書館マスター」をダブルクリックし、実行結果画面で⑤と同様の方法でデータをCalcにコピペし、列名行を入力しなおした状態が、下図です。2つ目のシート名は「東京都図書館マスター」としました。

Calcデータを表計算ドキュメント「東京都公共施設.ods」として保存します。

CalcからBaseへのデータ移行

まず、保存しておいた表計算ドキュメント「東京都公共施設.ods」を開きます。
次にフォルダー「データ移行サンプル」に格納されたデータベースファイル「公共施設2.odb」を開きます。ここには「公共施設1.odb」と同じ名前、同じ構造のテーブルが2つありますが、どちらもデータは登録されていません。
下図のようにCalcのシート「東京都公民館マスター」を開いて下さい。

全データを指定する領域(上図の赤い線で囲った領域)をクリックします。
すると、下図のように青く反転して全レコードが指定された状態になりますので、アイコン「コピー」をクリックします。

次に下図のように、Base編集画面のテーブル「公民館マスター」上で右クリックし、コンテキストメニューより「貼り付け」を選択します。

すると、下図のようにダイアログボックス「テーブルのコピー」が表示されますので、そのまま[次へ]をクリックします。

すると、下図のように「列の割り当て」画面が表示されますので、そのまま[完了]をクリックします。

下図がテーブル「公民館マスター」をダブルクリックして開いた状態です。

(注1この例ではテーブル「公民館マスター」のフィールド「ID」をプライマリーキーとして定義しておいた状態でデータ移行しました。移行元のCalcデータのID列に重複データがある場合はエラーが発生しますので、こうした恐れがある場合はプライマリーキー指定をしておかないで移行したほうが無難でしょう。

(注2Baseを新規に作成する際に表示されるダイアログボックス「データベースウイザード」でラジオボタン「既存のデータベースに接続」をONにし、プルダウンメニューから「表計算ドキュメント」を選択してCalcExcelで作成した表計算ドキュメントを開くことも可能ですが、この場合は作成されたodbファイルのテーブルにレコード追加したり、リレーションシップ等のBaseオブジェクトを作成することができません。

コメント

  1. […] これらは少し手間が掛かる手法ですが、手元にmdbファイルかaccdbファイルがあって内容を閲覧したいけれども、手元のPCにMS-Accessがインストールされていない場合に役に立ちます。また、mdbファイルからCalc経由でBaseにデータ移行する際の前処理として活用する場合にも役立つでしょう。 (注)データ移行の詳細についてはサイト「知っていますか」の記事「BaseとCalc間でデータ移行するには」を参考にして下さい。 […]

タイトルとURLをコピーしました