次の方法で共有

Access で Excelファイルをインポートするときに問題が生じる

Anonymous
2014-12-03T09:44:10+00:00

お世話になります。

以前、Access2003で作成したツールがあります。

Excelファイルをインポートし、加工後、SQLサーバーへエクスポートするもので、

Excelファイルをインポートする際は、事前にインポート先のテーブルを作成しておき

そこへインポートしてます。

先日、インポートしているExcelの行数が、Excel2003の上限を超えたため、Excel2010形式のファイル

とし、Accessも修正しました(TransferSpreadsheetの箇所を8から10に変更し、Access2010形式で保存)。

とくに問題なくインポート/エクスポートはできるのですが、「備考」フィールドの文字が途中で255文字で

切れる不具合が生じるようになりました

なお、予め作成しておくインポート先のテーブルの「備考」はメモ型としております。

※手動でインポートウィザードからやっても同じ事象でした。

Access2003では問題なかったのですが、Access2010で何か仕様が変わったのでしょうか。

255文字で切れるということは、テキスト型として認識されてしまったのかと思いますが

Excelファイルの先頭行の「備考」に255文字以上入力した状態でインポートすると

文字切れすることなくインポートできました。

とりあえず上記のように備考を255文字以上入力すればよいのですが、毎日当該ツールを

利用しているので、毎回インポート前に入力して、エクスポートしたら入力した文字を削除して

っていう作業が面倒です。。

何かよい方法はございますでしょうか。

ご教示の程、宜しくお願い致します。

※モデレーター注  タイトルを変更させていただきました

変更前タイトル:Access Excelファイルのインポート

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2014-12-04T01:18:46+00:00

Excel ブック内のワークシート/名前のついたセル範囲を

Access データベースにインポートする際における

各列のデータ型の決定方法については以下の記事にて解説されています。

Microsoft サポート: Access にて 複数のデータ型が混在する Excel のデータ (XLS 形式 または XLSX形式) をインポートするときに、エラー メッセージ "データ型変換エラー" が表示される場合がある

> Access2003では問題なかったのですが、Access2010で何か仕様が変わったのでしょうか。

条件さえ揃えばAccess 2003 環境でも同じ現象は発生します。

「今まではたまたまうまく取り込めていた」か、

「実際にデータの欠落はあったが見落とされていた」かの

どちらかでしょう。

> 255文字で切れるということは、テキスト型として認識されてしまったのかと思いますが

> Excelファイルの先頭行の「備考」に255文字以上入力した状態でインポートすると

> 文字切れすることなくインポートできました。

まさに仕様通りの動作。

いずれにせよ「先頭の何行かをスキャンしてデータ型を類推する」

という仕様自体が地雷なのは昔から言えることです。

より確実なのはExcelブックから直接インポートするのではなく、

CSVなどのテキストファイルに変換し、そのファイルをインポートすることです。

その場合はインポート定義を用いることで各列のデータ型を

明示的に指定することが出来ます。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-12-26T06:10:12+00:00

    sk.exeさま

    ご回答ありがとうございます。

    また、返信が遅くなり申し訳ございません。

    気付かないだけで切れてたかもしれませんが、2003のときは700文字程度は

    ちゃんとインポートできたのですが、2010だと255で切れます。

    なので、確かに仕様通りなのかもしれませんが、2003と2010だと多少異なる

    ようです。

    そもそも、現状の運用(日々数万行+100列程度のExcelをインポート)を

    見直した方がよいかもしれませんね。

    ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません