• ベストアンサー

Access2000の追加クエリについて教えてください

元Excelのデータをインポートして、Accessのテーブルデータに追加クエリで追加するとき、型変換エラーとなります。 このときテーブルのデザインで一つずつ数値型とテキスト型をあわせています。ただフィールド数が多いとかなり不便です。 何かよい方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

EXCEL上で行なうなら、先頭レコード(1行目をフィールド名なら2行目)にダミーデータをおいてください。 数値(整数)なら0、数値(浮動小数点)なら9.9、テキスト型ならA、 日付なら Ctrl+;(今日の日付)、時刻型なら Ctrl+:(現在時刻) ※インポート後にこの行をのデータの削除が必要です。 Access上で行なう場合は追加クエリで 数値→文字なら Format関数 例 Format(Nz([フィールド名]),"0;-0;") 文字→数値なら データ型変換関数 CInt,CLng等 例 CInt(Nz([フィールド名])) http://office.microsoft.com/ja-jp/access/HA012290181041.aspx?pid=CH100728911041 とするか、インポート用のテーブルを作成しておいて そのテーブルに直接インポートするかですね。 ※前回のデータが不要な場合は削除クエリでインポート前にデータをクリアすればOKです。

MnaSsan
質問者

お礼

皆様色々とご教授頂きありがとうございます。 関数は上手く使いこなせないかったので、皆様のご意見を参考にして自分なりやってみました。 既存のAccessデータの先頭フィールドのみを残したデータを作成 そこにEXCELデータをインポートし、再度EXCELにエクスポートし、 再びAccessにインポートしたデータを追加クエリで追加したら 上手くできました。少し手順を踏みすぎますが・・・。 関数はこれから勉強します。 またよろしくお願いします。

その他の回答 (2)

  • korolo
  • ベストアンサー率42% (39/92)
回答No.2

拝見しました。 エクセルのインポートは、エクセルのデータ形式を自動継承する迷惑な機能となっていますよね。 ですので、インポートは素直にそのまま行い、クエリーで必要なフィールドを関数で(例:数値を文字列にするなら Trimで)変換します。 そのクエリーをデータ対象に扱ってはいかがですか。

  • yossy0426
  • ベストアンサー率24% (32/130)
回答No.1

どうもです。 エクセルをまずインポートします。そのインポートされたテーブルはある程度テキスト・数値等データー型になっていると思います。 そのテーブルに対してエクセルをインポートすれば平気だと思いますが・・・・・ もしかしてエクセルインポート→テーブルA作成される→テーブルAからテーブルBに対して追加クエリーをかけてるとかですか?

関連するQ&A

専門家に質問してみよう