OpenOffice 3.4.1、普段よく使わないデータベースソフト、「Base」のメモ書き
特にブログネタもなかったので、放置していたけど、まぁちょうど仕事で使ってたOpenOffice(3.4.1)の、特にBaseについての基本的な使い方についてのメモ書きをしようと思っていたので、即席でこのブログにメモ書き。CalcのデータシートをBaseに移行
今まで使った事がないこのOpenOfficeなのだけど、誰も大して使ってないくせに仕事で無理やり使わされていたため、しょうがなく自習してCalcで基本的な関数やマクロの記録、ピボットテーブル程度は使えるようになったんだけど、データが多くなり、共有するとその重さに更に拍車がかかるため、OpenOfficeのソフトの一つであるデータベース、「Base」を使ってみる事にしたので、そのメモ書きなのです。OpenOfficeのBaseでテーブルを作成してみる
Baseはデータテーブルが独立していて、「クエリー」、「フォーム」、「レポート」がBaseで、データに関しては外部ソースを流用使用できる事が判明。なので、既にあるCalcの表をデータソースとして、Baseで使用出来ると思ったのだけど、Calcに関しては読込みのみで書込みが出来なかったため却下w
で、どうするの?って悩んだ挙句、Calcの表を若干修正し、該当テーブルを選択してドラッグアンドドロップですんなり完了。ただし、日時形式をキャプチャのように「YYYY/MM/DD」形式にしないとエラー。
また、後述のように、日時形式の言語設定が違うBaseで開こうとすると落ちて、僕の環境ではそのファイルはどのPCからも100%開かなくなりましたので要注意。
まずは下準備。上記の表を作って試す。日付の形式を「YYYY/MM/DD形式」にする事を忘れずに!
とりあえずBaseをクリック、もしくはOpenOfficeのメニューから新規作成を選ぶと上記のウィザードが現れるので、まずはそのまま進める。右のデータベースに登録するを選ぶと、Calc上でもテーブルが呼び出せるので便利!
気になる「既存のデータベースに接続」の項目について再度同じこ事を書くけど、Baseは「クエリーー」「フォーム」「レポート」とデータを保存する「テーブル」が独立しているため、既存のCalc、Excel等の「表計算」データを読み込んで、そこにデータを保存する事が可能なのじゃないかと思ったのだけど、試した結果、このバージョンではCalcとExcelに関しては読込みのみ可能でした。
ですが、SQL、Access等サポートされている外部のデータベースにアクセス出来るのは便利だと思います。もちろん実際読書きできるかどうかは試せる環境がないので試していません。
テーブルをクリックして、先ほどCalcで作成した表を図の辺りにドラッグ&ドロップ
テーブルの名前だけ作成する事も可能だけど、定義だけじゃなくデータもあるのでキャプチャの通りに進む。プライマリキーは後で作成も出来るし、指定する事も出来るので、無視して次へ進む。
必要な列だけを選択する事が可能ですが、今回は「>>」をクリックして全て選択します。
それぞれのフィールドの種類を決定します。あとから変更する事も可能です。ただ、「入力が必要」の場所に一つでも空白があるとレコードが作成されないため、最初は「いいえ」を選択して、作成後に「はい」にする事をお勧めします。
プライマリキーを設定しなかった場合、テーブル作成の最後に作成するかどうかのメッセージが出ます。今回はテストなのでとりあえずウィザードの流れに沿って作成。
出来上がったテーブルをクリックするとちゃんとデータがインポートできていることが確認できます。
もしCalcでカラムに色等の書式設定をしていると、なぜかテーブル表示が重くなるので、その場合はキャプチャの手順で「コピー」→「形式を選択して貼り付け」を行う。
定義とデータの所で「完了」をクリック。これで「データソースのテーブル」のみ貼り付けて、表示に関する問題が解決出来る。(場合がある)あとは元ファイルをリネームして念のために保存、もしくは削除し、新たなテーブルをリネームするだけ。
OpenOfficeのBaseでフォーム作成をしてみる
このままテーブルに直入力なんて不便極まりなくてありえないので、フォームを使用して入力する事にする。
まずはフォーム欄から「ウィザードを使用してフォームを作成」をクリック
ここでテーブル、クエリーーを選択し、かつ、表示&入力させたいフィールドを選択。とりあえず全て選択する。
OpenOfficeメニューバーのツール内にあるリレーションシップでテーブル同士を関連付けていれば、このフォームで入力した内容がその関連付けたテーブルのフィールドにも挿入されるのだけど、その設定画面。今回はテストなのでパス!
次に画面キャプチャのフォームデザインを選択。デザインは後から変更可能です。選択後、今度は「入力」・「削除」・「追加」権限の可否を選択し、次へ進む。
最後に背景の色とフォーム名を決定し、ウィザードが完了。背景色、フォーム名共に後から変更可能。 (背景は塗りつぶし、もしくは画像を挿入して変更)
OpenOfficeのBaseのフォーム入力準備と改良
とりあえずこれでフォームが完成したけど、このままじゃ見た目も変だし入力も不便。って事で、デザインと入力をちょっと変更してみる。
ちなみにフォームをクリックして最初の画面は左の画面キャプチャのようにビューモードで起動する。新規作成は画面下、右の画面キャプチャの赤丸で囲ったボタンで可能。
まず、テーブル→該当のテーブル上で右クリック→編集を選択。
左画面キャプチャの様にID欄を選択し、テーブル下にある「自動入力値」を「はい」に設定。 同じく個数も初期値を設定したいので、個数フィールドを選択し、今度は「標準値」を「1」に設定。だって最低1個は買ってる訳だし、恐らく一番多く入力するのが「1」という数字なので、わざわざ入力したくないでしょ。
これでわざわざ手入力する手間が省ける。
この設定を終わらせた後、フォームから下部にある上述の新規作成ボタンをクリックすると、右のキャプチャの様にIDと個数に値が入った状態で新規レコードが作成される。
次に、購入者名も決まっていれば都度入力するのは面倒なので、プルダウン式のメニューに変更する事にする。まずは「テーブル」より「購入者」の名前を保存するために新たなテーブルを作成。
テストなので、とりあえずフィールド名とフィールドタイプは画面キャプチャの様に設定し、OKをクリック。これで右画面キャプチャの様に購入者名というテーブルが作成された。
入力項目が少ないので、購入者名テーブルをクリックし、直接名前を入力していく。とりあえず2名入力。この名前がテストDBで作成するプルダウンメニューで選択できるようになるのです。
それではフォームを使いやすく編集します!まずはフォームのテストDBを右クリックで編集を選択。
フォームがプレビューではなく編集できる状態で開かれるので、下部にある赤丸で囲ったアイコンをクリックすると「フォームナビゲーター」が表示される。ナビゲーターを表示させていた方が編集では何かと便利なのです。
これから「購入者」をプルダウンメニューから選べるように変更します。ナビゲーターから選ぶ事もできるし、グループ化を解除して直接選ぶ事も出来ますが、ここではグループ化を解除して、テキストボックスを削除してます。
左のフォームコントロールからプルダウンメニューのアイコンをクリックし、購入者の場所で適度な大きさで配置。
すると、表示するテーブルを選択出来るので、ここで「購入者名」のテーブルを選択。
テストDBのどのフィールドに表示するかをし、次に選んだ項目をそのフィールドに保存するかどうかを選択する。キャプチャの設定でテストDBの購入者フィールドにプルダウンメニューから選択した名前が保存される。
OpenOffice-Baseのフォームデザインを変更
初期値のままだと地味で味気ないデザインに感じるので、枠の色や背景を変えてみる事にします。
今度は文字とテキストボックスのグループ化を解除せずに、フォームナビゲーターから直接変更したいテキストボックスを選んで、「プロパティー」をクリック。ここで各種設定が出来るので、「背景色」を白に、「枠」を青緑に変更。
ここからは単純作業ですw配置を変えたり、文字の幅を変えたりして入力&見やすい配置にする。残念な事に、OpenOffice3.1.4の通常の機能ではテキスト文字の色を変える事は出来ません。
背景色の変更は行毎に塗りつぶしを行う事で可能。一行塗りつぶして、あとは改行していけば自動で反映されるという仕様です。
テストの仕上げに背景画像を挿入してみる。「挿入」→「画像」→「ファイルから」を選択し、好みの画像をチョイス。選択後に画像を右クリック→「整列」「最背面へ移動」を選択して完了。
見た目は画像が背面にあるけど、実際はフォームの最前面に来ているため、編集時にオブジェクトが選べないのです。
フォームが完了したのでテスト入力してみる
フォームからテストDBをクリックして立ち上げ、画面下の赤丸で囲まれたボタンをクリックしてレコードを新規作成する。
IDの部分は自動入力を設定しているので入力する必要がないですね。購入者の場所は設定通り、名前が選べるようになってます。
適当に入力し終わったら画面下の保存ボタンを押してレコードを保存する。保存が終わったらフォームを閉じて、今度はテーブルのテストDBをクリックして反映されているかどうか確認。ちゃんと反映されてます!
OpenOfficeのCalc上で閲覧、編集してみる
まずは「ツール」→「オプション」→「OpenOffice.org Base」→「データベース」→「新規作成」の順でクリック。ここでOpneOffice自体にデータベースを登録する事で、ソフト間で共有が出来るのです。
とりあえずデータベースファイルを選んで名前は初期値のままOKを押して登録完了させる。
Calc上で、キャプチャの赤丸の部分を押すと、登録されているデータベースが表示されるので、該当データベースの任意のテーブルを選択。
ちゃんと開けたので、ここで編集したり、Calcにドラッグして保存したり、ピボットテーブルを使用したり出来るのです。
気を付けなければいけない点があって、多言語環境で使用する場合、必ずOpenOfficeのオプションから言語設定を、例えば画面キャプチャの様に統一する必要があります。そうしないと、違った言語設定のPCで開くとデータベースが壊れて、どのPCからも開けなくなりました。僕の環境下では再現性100%でしたw
OpenOffice-Baseのクエリー
クエリーに関してはSQLで直書きも出来るし、ウィザードでAccessと同じように視覚的にテーブルとテーブルの主キーを引っ張ってリレーションを築いて必要なテーブルだけ表示させたりする事が可能でした。
※ これはOpenOfficeというかSQLの分野になるので分からなければ調べて下さいw
ざっとメモ書きなので文章も適当だけど、まぁ参考になれば幸いですw