2

現在、既存のテーブルにデータを追加しようとすると問題が発生します。

単一のテーブルを作成したいCSVファイルが約100個あります。すべてのテーブルの列構造は異なりますが、関連するフィールド名が各ファイルの最初の行にあるため、これは実際には問題ではありません。

まず、ファイルの1つから新しいテーブルを作成して、フィールド名が最初の行にあることを示します。256文字を超える特定のフィールドをメモフィールドに変更し、データをインポートします。

次に、欠落しているフィールドをテーブルに追加します。

ここで、さらにデータを追加しようとすると、フィールド名が最初の行にあることを再度選択しますが、メモフィールド宛てのデータに対して切り捨てエラーが発生します。

このエラーが発生するのはなぜですか?これに対する回避策はありますか?

編集

これが私が問題を解決しようとしたことに関する最新情報です:

  1. テーブルのインポートと追加は、まったく同じ構造でない限り機能しません。さらに、すべてのフィールドとプロパティが設定されたマスターテーブルを作成してから、すべてのテーブルをマスターに追加することはできません。それでも切り捨てエラーが発生します。

  2. CodeSlaveのアドバイスを受けて、テーブルをアップロードし、必要なフィールドをメモフィールドに設定してから、テーブルを追加しようとしました。これは機能しましたが、メモフィールドは必ずしもすべてのデータファイルで同じ順序である必要はなく、24個のテーブルにインポートする1​​200個のデータファイルがあります。テーブルごとにデータテーブルをインポートすることは、これほど多くのテーブルのオプションではありません。

4

3 に答える 3

5

ソース ファイル (CSV) と宛先テーブル (MS Access) の不一致が発生していると思われます。

MS Access は、インポート時に CSV ファイル内のフィールド タイプを推測します。ただし、完全ではありません。文字列をメモとして、フロートを実数として認識しているのかもしれません。データを見ないとわかりません。

私が通常行うことは、次のとおりです。

  1. 2 番目の CSV を独自の (一時) テーブルにインポートします。
  2. 2 番目のテーブルをクリーンアップする
  3. 次に、SQL クエリを使用して、これらのレコードを 2 番目のテーブルから最初のテーブルに追加します。
  4. 2 番目のテーブルを削除する

(ロードする CSV ファイルごとに繰り返します)。

すべての CSV ファイルの構造がすでに同一であることが事前にわかっていれば、代わりにそれらをすべて 1 つに連結し、インポート/クリーンアップを 1 回だけ実行する必要があります。

于 2012-04-30T14:10:09.903 に答える
2

大きなテキスト フィールド (>255 文字) を含む CSV ファイルを既存のテーブルにインポートしようとすると、非常によく似た問題が発生しました。フィールドをメモとして宣言しましたが、まだ切り詰められていました。

解決策: インポートを開始してテーブルをリンクし、[詳細設定] ボタンをクリックします。関連するフィールドをメモ フィールドとして定義するリンク仕様を作成し、リンク仕様を保存します。その後、インポートをキャンセルします。今回は、既存のテーブルに追加する、必要なインポートをもう一度実行します。[Advanced] ボタンをもう一度クリックし、作成したばかりのリンク仕様を選択します。[完了] をクリックすると、データが切り捨てられることなく正しくインポートされます。

于 2013-04-01T20:04:15.360 に答える
1

私はこの問題を抱えていましたが、常に最初の行だけで発生していることに気付きました。そのため、csv に空白行を挿入すると完全にインポートされるため、Access テーブルの空白行を削除する必要があります。

乾杯、グレイハンター

注: Office 2010 を使用しています

于 2013-08-14T22:56:36.290 に答える