「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:2496
現在:4


テーブルをインポート後、クエリを作るとデーダが読めないとエラー。

ページOpenOffice.org FAQの登録ページ
投稿者ボンチ
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-10-30 14:11:53 (土)
OSWin2k-Pr
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

はじめまして。アクセスとの接続を切り離す為に、Baseへ独立したテーブルとしてインポートが完了しました。(アクセス→エクセルへ→Calc上からコピペで)インポートした複数のテーブルはダブルクリックで問題なく開きます。インポートしたテーブルの書式は、プライマリーキーのフィールド(主キー)は整数(INTEGER)で他フィールドは全てテキスト(VARCHAR)になってインポートされてます。(勿論、インポート前の書式が日付であったフィールドもです)編集からフィールド書式を変更して保存すると以下のようなエラーが出ます。 警告!列 "\$column\$"は変更できませんでした。そのかわりに削除して新しい書式を添付しますか。ボタン→(はい・いいえ・詳細) ”はい”にするとそのフィールドのデータだけ全て削除されました。なので仕方なく変更せずそのまま、主キーフィールド以外のフィールドの書式をテキスト(VACHAR)のままでクエリを構築したのです。 そしてクエリを実行すると、データが読めません!と以下データを参照したエラーの元になるフィールドらしき文字の羅列が下に出てきます。 そこで質問です。 インポート後のフィールドの書式が問題になっていると想像するのですが間違っているでしょうか? クエリを実行した際に出るエラーの原因と解決方法を何卒ご教授下さいませ! 宜しくお願い申し上げます。

エラー表示(2枚)はJPGで下記に添付いたしました。


当方の環境では

ike@九州 (2010-11-01 09:18:38 (月))

こちらでの成功した手順は以下でした。

・Calc上で日付列の表示形式を YYYY/MM/DD のようにしておき表をコピー
・データベースのテーブルカテゴリを選択して貼り付け
・プライマリキーの作成にチェック(既存の列を後でプライマリキーに変更はエラー)
・ウィザード途中のフィールドの書式設定で各フィールドの種類を適切に選び直す(そのままだとテキストになる)

type.png

結果、日付フィールドも正しくインポートされました。
当然テキストタイプのままでは、日付としての SQL は正しく動作しませんね

無題

ボンチ (2010-11-01 12:13:03 (月))

ike@九州さま。
早速のご回答どうもありがとうございます。一度やってみます!!
有難うございます。

Accessのデータベースについて

M.Kamataki (2010-11-01 14:06:29 (月))

>アクセス→エクセルへ→Calc上からコピペで

Accessのデータベースは、Baseから直接接続できます。お使いだったAccessが2003なら、データベースウィザードの最初のステップで、「既存のデータベースに接続」を選んでドロップダウンリストから「Microsoft Access」を選択し、ファイルを指定すれば、テーブルだけでなくBaseが読み出し可能なクエリーの一部も見られるようになります。

Accessに慣れていられるのなら、この方法でBaseに徐々に乗り換えるのが、ハードルの低い方法だと思います。今回、遭遇された日付型のフィールドの問題も起きないと思います。

この場合、テーブルはmdbファイルの中に格納され、クエリー、フォーム、レポートはodbファイルの中に格納されます。

クエリーの関数などは、ほぼAccessそのままのものが使えるというメリットもあります。

テーブルの定義変更について

M.Kamataki (2010-11-01 14:17:48 (月))

テーブルの定義変更はすべてエラーになるわけではありませんが、やらない方が無難です。同じようにテーブルのフィールド順の変更もできません。過去の質問、faq/3/12「フィールドを並べ替えられない?」をご覧ください。

テーブルの定義変更やフィールド順の変更は、大事なデータを失う可能性があるので、新しいテーブルを用意し、そちらにデータを移行するのが無難です。テーブルのコピーは使ったことがあるようですから、ウィザードの画面をご確認ください。単純なコピーとは別に、「データの添付」が用意されています。こちらを選べば、移行元から新しいテーブルへ引越しができます。

Accessとの接続の件

ボンチ (2010-11-04 12:28:44 (木))

M.Kamataki さま。色々と有難うございます。
以前、Accessのテーブルの接続していて、慣れたのでそろそろベースに乗り換えようと考えての今回の試みです。職場のPCを順次新品に変えていってまして、新品のPCにはMSOffice関係のソフトは一切入れない予定です。なので、Accessとの接続にたよっては居られないので、今回、独立したテーブルとしてインポートし、クエリを構築しようとしております。インポート後、テーブルの定義が全てテキストになっていたのでクエリの実行でエラーが出た模様です。今日こそ確認してみます。
有難うございます。

余談ですが

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はフロントエンド機能しか提供していないので、より信頼性の高いデータベースを自由に選べるのがメリットだと思います。

インポート上手くいきました!

ボンチ (2010-11-04 18:20:20 (木))

M.Kamataki さま様。

お蔭様で上手くインポートできました。日付をMMMM/MM/DDにしてCalcに貼り付けてそこからBaseに貼り付けて、再度カテゴリの設定をやり直して・・・と工程を経て完了しました。本当に有難うございます。
データベースエンジンのお話は折角頂きましたが、僕にはかなり難解な領域かと・・。すみません。
また今後とも宜しくです。有難うございました。

完了にします

M.Kamataki (2010-11-15 21:45:44 (月))

コメントありがとうございました。

お名前:
題名:


添付ファイル: filetype.png 824件 [詳細] fileデータソースを確認してください.jpg 553件 [詳細] file警告列の変更駄目.jpg 546件 [詳細]