Excel ファイルを Access にインポートするときにデータ型を変更する

StackOverflow https://stackoverflow.com/questions/122422

  •  02-07-2019
  •  | 
  •  

質問

Excel ファイルを Access にインポートするときにデフォルトのデータ型を変更する方法はありますか?(ちなみに私はAccess2003を使用しています。)

インポートされる各列に任意のデータ型を自由に割り当てることができる場合があることはわかっていますが、それは Excel 以外のファイルをインポートする場合に限られます。

編集: 誤解のないように、インポート プロセスには、インポートされた列のデータ型を変更できるステップがあることを理解しています。

実際、それが私が尋ねていることなのです。何らかの理由で、おそらく常に Excel ファイルである可能性がありますが、他に何かがあるのか​​もしれませんが、データ型の変更が許可されないことがあります。ドロップダウン ボックスはグレー表示になっており、Access が正しいと想定するデータ型をそのまま使用する必要があります。

たとえば、大規模な Excel ファイル (12000 以上の行、約 200 列) Access では、列 #105 (または類似のもの) の大部分が数字で埋められていました (コード: 1=foo, 2=bar, 、など)、そこには少数のアルファ コードもあります(A=boo、B=far など)。Access は、 Number データ型 (変更した後でも) Format Excel ファイル自体の値)のため、それらのアルファコードでエラーが発生しました。インポート時にデータ型を変更できるようにしていたら、多少の問題は避けられたでしょう。

Access では実行できないことを私が求めているのでしょうか、それとも何かが足りないのでしょうか?ありがとう。

編集: 以下に有益なアドバイスを提供する 2 つの回答があります。Excel ファイルを CSV として保存してインポートすると、次のように簡単に機能し、インポートできます。 クリスOC と言う。インポート仕様を保存するためのアドバイスも非常に役立ちます。ただし、私はレジストリ設定の答えを選択しました DK 「受け入れられた回答」として。答えとして気に入ったのは、 1回限りのステップ これを使用すると、大きな問題 (Access がデータ型を誤って割り当てる) を解決できます。つまり、このソリューションではデータ型を自分で変更することはできませんが、Access がデータ型を正確に推測できるため、問題は少なくなります。

役に立ちましたか?

解決

これ 5月 Excel Jet ドライバーのデフォルト設定が原因である可能性があります。次のレジストリ キーを確認し、その値をデフォルトの 8 から 0 に変更します。これは、「最初の 8 行だけでなく、すべての値に基づいて列のデータ型を推測する」ことを意味します。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]
"TypeGuessRows"=dword:00000000

これが機能するかどうか教えてください。

他のヒント

これを行うには、いくつかの方法があります。最も簡単な方法は、Excel で .xls ファイルを .csv ファイルに変換することです。これにより、テキスト インポート ウィザードを使用して Access にインポートできます。これにより、インポート中にすべての列のデータ型を選択できます。

これを行うことのもう 1 つの利点は、csv (またはテキスト) ファイルのインポートが容易であることです。 それで xls ファイルのインポートよりもはるかに高速です。このインポートを複数回実行する場合は、インポート設定設定をインポート仕様として保存します。(テキストのインポート ウィザードで、左下の [詳細...] ボタンをクリックし、次に [名前を付けて保存] をクリックし、仕様名を指定して、加えた変更を保存します。)

Access は必要なことを実行できますが、そのための簡単な方法はありません。いくつかのレコードセットを管理する必要があります。1 つは Excel データで、もう 1 つは最終的な Access テーブルです。両方のレコードセットを開いたら、Excel データを参照して Access テーブルに追加することで、一方のレコードセットからもう一方のレコードセットにデータを転送できます。この段階では、要求に応じてデータ型を変更できるようになります。

CSV ファイルからインポートする場合は、次のことも確認できます。 スキーマ.ini これにより、インポートプロセスのあらゆる側面を制御できることがわかります。

Access では、インポート プロセスでデータ型を指定できます。問題は次の「追加」プロセスにあり、データ型へのインポートについては尋ねられず、変更したことも忘れられます。MS Access のバグだと思います。

Access がこれを実行します。

インポートプロセスでは、各列のデータ型を定義できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top