Access2016で長いテキスト型でインポートエラー

始めにテーブルを作成し、フィールド型を長いテキストにし、テキストインポートを行うとインポートエラー

テーブルは用意せずにテキストインポートにて、インポート定義を作成し、フィールド型を長いテキストにしてもエラー

DBを新規作成し、インポートしてもエラー。

何度もテストしてるうちにエラー表示しなくなるが、インポートできる文字数は255文字

読み込みファイルCSV

読み込みたい文字は272文字(ExcelのLen関数にて)

Access2007-2016ファイル形式

** モデレーター注 **
この質問は [Office | Access | Windows その他 | Office 365 for business] のカテゴリーに投稿されましたが、内容から判断し、こちらのカテゴリに移動いたしました。適切なカテゴリーに投稿すると、返信や回答が得られやすくなり、同じ質問を持つ他のユーザーの参考にもなります。

 

質問情報


最終更新日 2019年9月19日 表示 4,240 適用先:

* 小さ目のページ番号でお試しください。

* 番号のみをご入力ください。

* 小さ目のページ番号でお試しください。

* 番号のみをご入力ください。

ご連絡ありがとうございます。

こちらも確認しました。

フィールドの文字数確認方法が誤っていたということですね。

失礼いたしました。

エクセルの貼り付けですが、確認しましたところCTRL+Vではりつけると255文字ですが、

右クリック、貼り付け先の書式に合わせる

もしくは、右クリック、形式を選択して貼り付け、テキスト

で張り付けた場合は255文字以上貼り付けができました。
ここでLen関数で確認しますと、255文字の以上の文字を貼り付けたとを確認できました。

しかし、Excelの仕様では

列の幅

255 文字

行の高さ

409 ポイント

改ページ

水平方向および垂直方向に 1,026

セルが含むことができる合計文字数

32,767 文字

ヘッダーまたはフッターの文字数

255

なので、CTRL+Vで張り付けると列の幅もしくはヘッダーの文字数で切り落としされている現象が発生しているんですね。以前の95,97,2000のころはなかったような・・・、貼り付けの仕様がかなりかわったことによるものですかね。

当初はインポートエラーが表示しているときはインポート時に255文字になっていた(憶測ですが)ようですが、エラーが出なくなってからはインポートできていたということですね。

別の質問でも投稿したのですが、貼り付け先の書式に合わせて貼り付けは、フィールドないに改行があると、貼り付け後、行が増えてしまうのでAccesssデータの確認するにはやりにくいですね。

Accessにてコピー、Excelにて右クリック、値貼り付けが復活すればいいのですが

現状では一行程ふえて右クリック、形式を選択して貼り付け、テキストですね。

津森 様

ずっちさん

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

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

ACCESS2016で試したことはないのですが、ACCESSの仕様で最初の8行?で判断してそれら全部が255文字以内なら勝手に文字型と判断し、255文字で切れてしまう。

これは私もACCESS2010で何度も経験しました。

解決方法

1.インポート定義ファイルを作成する

2.レジストリーを書き換えて8件ではなく全件(例えば1000件)で判断する

3.最初にダミーレコードを作成しそのレコードに255文字以上(ACCESSはメモ型と判断)のテキストを設定しインポート後にこのレコードは無視する。

私は3で解決しました。

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

wagonrさん

ご連絡ありがとうございます。

>ACCESS2016で試したことはないのですが、ACCESSの仕様で最初の8行?で判断してそれら全部が255文字以内なら勝手に文字型と判断し、255文字で切れてしまう。

 これはインポート先のテーブルは作成済みで、長いテキストになっていても、255文字でで切れてしまうということでしょうか?

 すでに長いテキストでテーブルがある場合は平気でしょうか?

今回、インポート定義を作成し対応しておりました。

ただ、確認方法のエクセルに貼り付け(CTRL+ V)して確認するということに問題があり、Excelに貼り付けした時点で255文字に切られてしまうということがわかりました。値貼り付けの場合は問題ないことが確認できました。


この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

 これはインポート先のテーブルは作成済みで、長いテキストになっていても、255文字でで切れてしまうということでしょうか?

 すでに長いテキストでテーブルがある場合は平気でしょうか?

インポート先のテーブルは作成していません。

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
                              "WORKテーブル", _
                              "インポートファイル", True

こんな感じです。(この場合はEXCELファイルですが)

インポート先のテーブルがある場合はインポート定義ファイルでできるとおもいます。

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

wagonrさん

ご連絡ありがとうございます。

 255文字で切れてしまうのはエクセルへの貼り付け問題でしたので解決しました。

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

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。

* 小さ目のページ番号でお試しください。

* 番号のみをご入力ください。

* 小さ目のページ番号でお試しください。

* 番号のみをご入力ください。