VIDTAKER.COM

Q&A

Excelの値が長すぎるため、_ImportErrorsテーブルが生成さ - Microsoft Accessの/ VBAの回答


ちょうど私のデータベースにExcelのスプレッドシートから適切な情報をテーブルにインポートするモジュールの追加が完了私は。それが成功すると、いくつかの一時テーブルを作成しますDoCmd.TransferSpreadsheet、フォーマットを実行し、レコードを操作すると、既存のデータに対していくつかのチェックを行いますし、テーブルに書き込みます。

しかし、私はいくつかの現実的なシナリオと、それをテストを開始し、1つの不可解なファッションに大きな時間を壊れている。

スプレッドシートがインポートされてロービング面接によって記入された建物のための評価基準のリストです。 1つの列(D)の短い応答を(例えば、'コードに捧げられるのY'の'N'など)は、どこにアクセスが便利になると、それは完全に今起こっているのです。もう1つの列(F)は面接官のコメントがあり、罰金だ、メモ型フィールドに行く。

しかし、3列目は、面接が完了することになって、自由形式の回答(メール)の、唯一の成功は非常に奇妙な状況下で輸入している。私はナンセンス長いテキスト文字列を入力してみました - 最初に、この面接は、調子に乗っ場合どのように対応するフォームのテキストボックスにはが表示される確認することでした。私は2つの自由形式のセルと対応するコメントセルに文字列を配置。突然エラーがインポート時に生成されて始めた。ではなく、文字列を切り捨てる、Accessは完全に拒否され、nullのように値を残して。ない警告が私は場合にのみ12インポートエラーテーブルが私のテストから積み上げことに気づいたあるんだよ...

これは最初の一時テーブルの構造です。それにインポートするときにエラーテーブルが生成されます:

  1. F1            Long Integer
  2. F2            Text (5)
  3. F3            Text (60)
  4. F4            Text (10)
  5. F5            Text (255)
  6. F6            Memo
  7. AImportIndex  AutoNumber / Primary Key

_ImportErrorsの内容は常にです:

  1. Error                      Field    Row
  2. Type Conversion Failure    F5       7
  3. Type Conversion Failure    F5       9
本当に奇妙なことは、長いコメントフィールドすぎる場合に発生これはのみの場合、両方の。長い場合も、彼らは両方、彼らは両方失敗します。 )の場合のいずれかの代わりには255文字未満のどちらも 、それらが失敗した(1つは長い切り捨てられます。

メモに[F5]キーのフィールドタイプを変更すると、その真の私を心配解決しない。

私はプログラムの最終テーブルにそれを移動する前に、しかし、この問題は、TransferSpreadsheet中に発生する文字列を切り捨てることが、私は非常に微細なコントロールを持っていない。

すべてのアイデアですか?これは私のコードまたはExcelブックに問題がありますか?



15 Replies

1)

ことがありますかテーブルにデータを持ってオートメーションコードを試してみました?問題は、TransferSpreadsheet()メソッド内に存在する場合には、少なくとも表示されます。

2)

こんにちはADezii、

ありがとうございます。私は、オートメーションのコードに慣れていない私が私はちょうど、私はそれが何か、私は別のスレッドで出会った他の同じプロジェクトで採用し始めているかもしれないと思うか検索from。物のこのような?:

  1.     'then we add code to open the template file and save it with a name drawn from the form:
  2.  
  3.     'create excel instance
  4.     Dim xlObj As Object
  5.     Set xlObj = CreateObject("excel.application")
  6.     'open the template file
  7.     xlObj.workbooks.Open CurrentProject.path & "\Management Baseline Assessment Template.xls"
  8.     'Start Excel and show
  9.     'xlObj.Visible = True
  10.     'save the template file with another name
  11.     xlObj.activeworkbook.saveas CurrentProject.path & "\" & stTargetFile
  12.     'close and re-open new file to prevent odd object locks
  13.     xlObj.activeworkbook.Close
  14.     xlObj.workbooks.Open CurrentProject.path & "\" & stTargetFile
  15.     'open the temp file we exported from access
  16.     xlObj.workbooks.Open CurrentProject.path & "\temp.xls"
  17.     'select and copy all the data
  18.     xlObj.ActiveSheet.Range("A2:L2").Select
  19.     xlObj.selection.copy
等..

(混乱のビットが、これはコードの不慣れなタイプ、私はまだそれを暗記コピーと貼り付けの段階でなんだ。何かを分割するしないでください。)

もちろん、全部がTransferSpreadsheetの輸出から始まった!私はautmoation試しコードを与えるために幸せなんだけど、それを記述する方法トラブルのいくつかの適切な基礎を見つけるのビットを過ごしています。このプロジェクトのニーズに少なくとも本当にかなり基本的なもの。

することができますあなたが知っている可能性のある有用なリンクを指摘してください?

3)

それは保証されて、あたかもスプレッドシートのいずれかのページ、または私の個人的な電子メールアドレスにをアップロードする実現可能かそれはあなたが落ちたか?

4)

はい、私はそこに掲載に問題があると表示されません。私は識別情報を取り出してそれ以外の場合は、私は金曜日にテストされたプロトタイプと同じです。

あなたは、データベースからも、診断を下すに関連するテーブルとフォームを参照してくださいする必要がありますか?

感謝あなたの助け!

5)

引用:
あなたは、データベースからも、診断を下すに関連するテーブルとフォームを参照してくださいする必要がありますか?
そうでもない場合は、私がすることができますスプレッドシートのインポートをきれいに私が見てみましょう。

6)

[OK]を、上記の投稿。あなたにトークは明日。

7)

私は、スプレッドシートを見ていた問題はないが正常にすべてのエラーがなく、これをインポートした。フィールドは、しかし、みなかった切り捨てて来る。ウィル再び私がチャンスを得るております。

8)

おかげで、ADezii。場合はしない心の場合は、同様にこのいずれかを試みることができる?それは同じことですが、セルE29(とのE31の補正で長いテキストで)。

切り捨ては、列E内のテキストの - と、確かに、所望の期待 - この場合の結果です。



9)

ジェレミー、

でしたがレコード(行のデータを作成)が、元のデータからのインポート(行7または9の故障の原因にオリジナルポストが良いでしょう)と報じた。
明確に表現の質問にそれ以外の場合おめでとう。容易ではない1つ説明するとあなたは素晴らしい仕事をした。

10)

それはいい、NeoPaを聞いてよ!長いテキストは以下のとおり:

引用:
このインポート(7 / 3 19 / 3は)、私はここでそれが可能な領域を超えていることを確認するには、本当に長い応答を書くつもりでシミュレートしてください。何を言うことができますか?風は、それが最終的に春がいつか来ることを行っているようですが、それは素敵な日だ。前方イースター誰でディーアールに向けて - 、実際の時間スロットがいることを確認する必要があります。彼らは、これはBBCのかを知ることを選んだしている場合。
私は両方の自由形式回答とコメントセル(F5キーとF6キーのフィールドにそれぞれにインポート)に、両方の行(7として表示されるこれをコピーして9 Accessのテーブルに)。切り捨てフォーム必要があります:

引用:
このインポート(7 / 3 19 / 3は)、私はここでそれが可能な領域を超えていることを確認するには、本当に長い応答を書くつもりでシミュレートしてください。何を言うことができますか?風は、それが最終的に春がいつか来ることを行っているようですが、それは素敵な日だ。見て
しかし...

original import Excelファイルの破損の可能性を排除するために、私は試みたcolumn電子、右側に複数の列を削除して、再フォーマット列EとF.私は怖いがそれはすべてに沿ってかもしれない。指が交差、今のところは正しくても、複数のセルが切り捨てする必要があるテキストを持って仕事ができることだ。私は他の誰かからファイルをテンプレートに変更に数回自分自身を受けていたので、誰がどこでエラーがインチこっそりかもしれない知っている

しかし、知っていれば何かは私に聞かせて新しいことですしくださいこれが発見されたことが示唆問題、メソッドTransferSpreadsheetので!

それに見て、気に残念のおかげですべての。

(ちなみに、最後のカウントでは、新しい先生は誰シリーズはまだ、後の今年の今後です。)

11)

引用:

当初の投稿JeremyI プロフィール投稿

(ちなみに、最後のカウントでは、新しい先生は誰シリーズはまだ、後の今年の今後です。)

博士!

12)

:-)

悲しいことに、エラーが今改正ファイルに戻ってきた最新のテストでは、1つだけセルが長すぎたマニフェストしています。このもう少し考えを与える必要があります...

インポートファイルは、ファイルテンプレートのオートメーションコードを新しいファイル名(で保存するにデータベースからいくつかのデータをオーバーレイによって生成された場合、私は信じて、上記を参照)。それがここにすべての物事に影響を与えるだろうか?問題の細胞はいずれもペーストの影響を受けています。

13)

公平に私は、データを何も厄介なの見たことがないだけと仮定することができますとしてお持ちのように見える、それが破損に関連する問題だった。あなたのresultls私の経験の外に私は怖いです。

14)

ハハ!ひび割れそれを最後に。答えは私にはいつか一晩だった。

番号(慈善番号などする)と、出していたそれは実際にそれ自体の文字列の長さとはではなかったのではなく形式のアクセスが読んでいたことが予想自由形式のrepsonsesのインチとしてExcelスプレッドシートの列ときに番号が存在する場合、全体のアクセスフィールドを捨てたいくつかの理由だった。私は任意の番号を取り出し時に、インポートはうまく進んだが見つかりました。

私は、番号の形式は、[全般] Excelでどのようなアクセスは何をすべきかを知らなかったはずだった決定までには受け入れられなかったもちろん、私は掘り続けた。 fieldにもかかわらず、テーブルの文字255されてspecifiedとしてテキストメモ、より長いときはのヒット数を(おそらく特定の最小値)とテキスト文字列、それは長く結果、型変換エラーのある工程Excelの一般的な形式を数値以外のすべての番号。私はテキスト数値形式に、その列を変更、突然すべてが完璧に働いた。

1つの欠点は、Excelのユーザーがそのフィールドに255文字以上のテキストを入力した場合、それはハッシュ(####).の文字列として表示されますですしかし、私は優位にマニュアルでは、この信号は、長さが必要な削減される説明し、これを有効にします。それはちょうどText'は、これもマニュアルで言及を必要とする、今から私は誰かが親切に'修正'は、インポートがクラッシュするかどう知っている番号アド'ために、Excelの魅力的な緑色の三角形のインジケータで私たちを残します。

したがって、コードが、私は_ImportErrorsを検出することは、データベースユーザーに通知削除ログインまま追加

ため、彼らはしない、特に問題私は、すべてのアドインと、それを誘発する正確な条件のアウトを知らない。しかし、私が先に行くだろうと私はアウトのケース誰かが他の欲求不満の同じような検出が投稿思いました。

見て、有用な診断を有する両方のあなたの再度に感謝します。

15)

ニース応答ジェレミー。

私は、私はむしろ、以前の情報から、この問題を割引したい認めなければなりませんが、それは時期尚早だったようだ。 Excelでは、データ転送の手段として、合併症の数を、それはかなり限られた選択する関連付けられているか。これはそれらの1つです。あまりにも巧妙さを試みます。行の最初の数字は、その列(またはその他の特定のデータ型の数値として扱われることがあります)それは、その列をそのように、自己決定のパターン、それをのと一致しない任意のデータを争う治療が表示された場合。

私は実際にはとても感銘を受けたので、それはすべてによると、あなたはかなり絶望的な状況から勝利を抽出したように見える。あなたの足跡をたどる旅行者のための説明を転記明確ボーナスです。