* テーブルをインポート後、クエリを作るとデーダが読めないとエラー。 [#ddfbb28a]
 |RIGHT:|LEFT:|c
 |~ページ|[[OpenOffice.org FAQの登録ページ]]|
 |~投稿者|ボンチ|
 |~分類|#listbox3(Q&A,faq03,class)|
 |~優先順位|#listbox3(普通,faq03,priority)|
 |~状態|#listbox3(完了,faq03,state)|
 |~カテゴリー|#listbox3(Base データベース,faq03,category)|
 |~投稿日|2010-10-30 14:11:53 (土)|
 |~OS|Win2k-Pr|
 |~依存するページ||
 |~バージョン|#listbox3(3.2.1,faq03,version)|
 
 //////////バグ対策(以降マッチさせない)
 
 ** メッセージ [#n431d937]
 |LEFT:|c
 |回答ページでは行末に「~」を付加する必要はありません|
 はじめまして。アクセスとの接続を切り離す為に、Baseへ独立したテーブルとしてインポートが完了しました。(アクセス→エクセルへ→Calc上からコピペで)インポートした複数のテーブルはダブルクリックで問題なく開きます。インポートしたテーブルの書式は、プライマリーキーのフィールド(主キー)は整数(INTEGER)で他フィールドは全てテキスト(VARCHAR)になってインポートされてます。(勿論、インポート前の書式が日付であったフィールドもです)編集からフィールド書式を変更して保存すると以下のようなエラーが出ます。
 警告!列 "\$column\$"は変更できませんでした。そのかわりに削除して新しい書式を添付しますか。ボタン→(はい・いいえ・詳細)
 ”はい”にするとそのフィールドのデータだけ全て削除されました。なので仕方なく変更せずそのまま、主キーフィールド以外のフィールドの書式をテキスト(VACHAR)のままでクエリを構築したのです。
 そしてクエリを実行すると、データが読めません!と以下データを参照したエラーの元になるフィールドらしき文字の羅列が下に出てきます。
 そこで質問です。
 インポート後のフィールドの書式が問題になっていると想像するのですが間違っているでしょうか?
 クエリを実行した際に出るエラーの原因と解決方法を何卒ご教授下さいませ!
 宜しくお願い申し上げます。
 
 エラー表示(2枚)はJPGで下記に添付いたしました。
 
 ----
 ***当方の環境では [#v54c8506]
 >ike@九州 (2010-11-01 09:18:38 (月))~
 ~
 こちらでの成功した手順は以下でした。~
 ~
 ・Calc上で日付列の表示形式を YYYY/MM/DD のようにしておき表をコピー~
 ・データベースのテーブルカテゴリを選択して貼り付け~
 ・プライマリキーの作成にチェック(既存の列を後でプライマリキーに変更はエラー)~
 ・ウィザード途中のフィールドの書式設定で各フィールドの種類を適切に選び直す(そのままだとテキストになる)~
 #ref(type.png)~
 結果、日付フィールドも正しくインポートされました。~
 当然テキストタイプのままでは、日付としての SQL は正しく動作しませんね~
 
 //
 ***無題 [#h2002a26]
 >ボンチ (2010-11-01 12:13:03 (月))~
 ~
 ike@九州さま。~
 早速のご回答どうもありがとうございます。一度やってみます!!~
 有難うございます。~
 
 //
 ***Accessのデータベースについて [#e332c612]
 >M.Kamataki (2010-11-01 14:06:29 (月))~
 ~
 >アクセス→エクセルへ→Calc上からコピペで~
 ~
 Accessのデータベースは、Baseから直接接続できます。お使いだったAccessが2003なら、データベースウィザードの最初のステップで、「既存のデータベースに接続」を選んでドロップダウンリストから「Microsoft Access」を選択し、ファイルを指定すれば、テーブルだけでなくBaseが読み出し可能なクエリーの一部も見られるようになります。~
 ~
 Accessに慣れていられるのなら、この方法でBaseに徐々に乗り換えるのが、ハードルの低い方法だと思います。今回、遭遇された日付型のフィールドの問題も起きないと思います。~
 ~
 この場合、テーブルはmdbファイルの中に格納され、クエリー、フォーム、レポートはodbファイルの中に格納されます。~
 ~
 クエリーの関数などは、ほぼAccessそのままのものが使えるというメリットもあります。~
 
 //
 ***テーブルの定義変更について [#h4e7452d]
 >M.Kamataki (2010-11-01 14:17:48 (月))~
 ~
 テーブルの定義変更はすべてエラーになるわけではありませんが、やらない方が無難です。同じようにテーブルのフィールド順の変更もできません。過去の質問、faq/3/12「フィールドを並べ替えられない?」をご覧ください。~
 ~
 テーブルの定義変更やフィールド順の変更は、大事なデータを失う可能性があるので、新しいテーブルを用意し、そちらにデータを移行するのが無難です。テーブルのコピーは使ったことがあるようですから、ウィザードの画面をご確認ください。単純なコピーとは別に、「データの添付」が用意されています。こちらを選べば、移行元から新しいテーブルへ引越しができます。~
 
 //
 ***Accessとの接続の件 [#j7a8902f]
 >ボンチ (2010-11-04 12:28:44 (木))~
 ~
 M.Kamataki さま。色々と有難うございます。~
 以前、Accessのテーブルの接続していて、慣れたのでそろそろベースに乗り換えようと考えての今回の試みです。職場のPCを順次新品に変えていってまして、新品のPCにはMSOffice関係のソフトは一切入れない予定です。なので、Accessとの接続にたよっては居られないので、今回、独立したテーブルとしてインポートし、クエリを構築しようとしております。インポート後、テーブルの定義が全てテキストになっていたのでクエリの実行でエラーが出た模様です。今日こそ確認してみます。~
 有難うございます。~
 
 //
 ***余談ですが [#l4c0df9d]
 >M.Kamataki (2010-11-04 14:40:47 (木))~
 ~
 Accessをインストールしなくても、mdb形式のデータベースを扱うことができます。Windowsに限って言えば、標準で備えているデータベースエンジンでもあります。mdb形式のデータベースの作成も必ずしもAccessが必要なわけではありません。以下のページを参考にしてください。~
 ~
 MS-Access を使わずに Jet Database Engine を使用する方法~
 http://www.f3.dion.ne.jp/~element/msaccess/AcTipsGnrHowToUseJetWithoutMSAccess.html~
 ~
 OpenOffice.org Baseが利用する標準のデータベースであるodb形式ファイルに関しては、複数人によるデータベースの共有ができない、OpenOffice.orgがクラッシュした際のodb形式ファイルの保護が保証されていないというデメリットがあります。2番目は、mdb形式ファイルでも同様ですが、このあたりも勘案されて乗り換えをご検討ください。~
 ~
 幸いにBaseはフロントエンド機能しか提供していないので、より信頼性の高いデータベースを自由に選べるのがメリットだと思います。~
 
 //
 ***インポート上手くいきました! [#ja4f8122]
 >ボンチ (2010-11-04 18:20:20 (木))~
 ~
 M.Kamataki さま様。~
 ~
 お蔭様で上手くインポートできました。日付をMMMM/MM/DDにしてCalcに貼り付けてそこからBaseに貼り付けて、再度カテゴリの設定をやり直して・・・と工程を経て完了しました。本当に有難うございます。~
 データベースエンジンのお話は折角頂きましたが、僕にはかなり難解な領域かと・・。すみません。~
 また今後とも宜しくです。有難うございました。~
 
 //
 ***完了にします [#d6a1ce31]
 >M.Kamataki (2010-11-15 21:45:44 (月))~
 ~
 コメントありがとうございました。~
 
 //
 #article