Access2010で、非常に困ったことがあります。
拡張子がmdbファイルで、Excelのワークシートからデータをインポートするとフィールドの順番が変わってしまいます。

mdbファイルで外部データのインポート
旧拡張子(.mdb)のデータベースがあります。
Access2000ファイル形式、または、Access2002~2003ファイル形式です。

[外部データ]タブの[インポートとリンク]グループにある[Excel]をクリックします。
Excelワークシートのインポート
Microsoft Excelファイルからデータをインポートします。または、Microsoft Excelファイルのデータにリンクします。
![[外部データ]タブの[インポートとリンク]グループにある[Excel]](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/641inport101.png)
[外部データの取り込み-Excelワークシート]が表示されます。
[参照]ボタンをクリックして、データのインポート元となるExcelブックを指定します。
[現在のデータベースのデータの保存方法と保存場所を指定してください。]では、[現在のデータベースの新しいテーブルにソースデータをインポートする]を選択して、[OK]ボタンをクリックします。
![[現在のデータベースのデータの保存方法と保存場所を指定してください。]のウィンドウ](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/641inport104-e1728194787827.png)
[ワークシートインポートウィザード]が表示されます。
[先頭行をフィールド名として使う]のチェックボックスをオンにして、[次へ]ボタンをクリックします。
フィールドの並びは、Excelシートの順番通りです。
[次へ]ボタンをクリックします。
![[ワークシートインポートウィザード]で[先頭行をフィールド名として使う]のチェックボックスをオン](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/641inport105-e1728194839980.png)
[インポートのオプションをフィールドごとに指定できます。]では、そのまま[次へ]ボタンをクリックします。
![[インポートのオプションをフィールドごとに指定できます。]の画面](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/641inport106-e1728194983978.png)
主キーの設定
[ワークシートインポートウィザード]の3枚目で主キーについての設問があります。
新規テーブルには主キーを設定すると便利です。主キーがあるとテーブルの各レコードを一位に識別できるので、目的のデータを見つけやすくなります。
ここで[主キーを自動的に設定する]を選択して[次へ]ボタンをクリックします。
![ワークシートインポートウィザードで[主キーを自動的に設定する]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/641inport107-e1728195001971.png)
インポート先のテーブル名を指定します。[完了]ボタンをクリックします。

[インポート操作の保存]の画面になります。ここでは、保存せずに[閉じる]ボタンをクリックします。
![[インポート操作の保存]の画面](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/641inport109-e1728195073499.png)
参考[主キー]については、以下の記事で解説しています。
-
Accessテーブルの[主キー]の設定
Accessのテーブルでは、[主キー](シュキー)を設定することができます。[主キー]とは、各レコードを固有のものとして識別するフィールドの ...
インポート操作を保存すると、コマンドボタンを作成してマクロとして登録することができます。
インポートやエクスポート操作を繰り返し行うような場合は、インポート操作を保存しておくと便利です。既定はオフになっています。
-
Excelに出力(エクスポート)するコマンドボタンの作成
Access 2010でテーブルやクエリをExcelに出力するマクロを作成し、それをコマンドボタンに登録する方法です。 マクロの作成方法は3 ...
テーブルのデザインビューで確認
以下は、インポートしたテーブル[T_主キー自動設定]のデザインビューです。
[ID]フィールドが下から2番目の位置にあり、他のフィールドもExcelのフィールドの順番どおりではなく、一部が変わってしまいます。

テーブルのデータシートビューです。

もちろん、フィールドをドラッグして並び替えすれば問題ありませんが、ここに手間がかかってしまいます。
主キーの設定をしない場合
ワークシートインポートウィザードで、[主キーの設定をしない]を選択した場合は、
![ワークシートのインポートウィザードで[主キーの設定をしない]を選択](https://hamachan.info/WordPress2019/wp-content/uploads/2017/01/641inport112-e1728195214212.png)
[T_主キー設定なし]テーブルのようにフィールドの順番は変わりません。
テーブルのデザインビューとデータシートビューです。


2つのテーブルのデザインビューを比較するとはっきりします。
左側が主キーを設定しなかった場合、右側が主キーを自動設定した場合です。

困ったもんです。早く解決してくれないでしょうか。
参考拡張子が[.accdb]の場合は発生しません。拡張子が[.mdb]の場合にこの現象になります。
Access2007も、Access2013も同じ現象です。Access2016以降も変わっていません。
以下は、Access2013での解説です。
-
mdbファイルではインポートしたフィールドの順番が変わる
Access2013で拡張子[.mdb]で操作する時に発生する問題点です。 Access2000ファイル形式とAccess2002~2003 ...
Excelのデータをインポートする方法は、以下の記事でも解説しています。
-
Excelのデータをテーブルにインポート(ウィザードの使用と貼り付け)
AccessでExcelのデータをインポートしてテーブルを作成する方法です。 操作は簡単なのですが、なかなか思うように行かないこともあります ...
旧拡張子(mdb)から新しい拡張子(accdb)に変換する方法は、以下の記事で解説しています。
-
mdbファイルをaccdbファイルに変換
Access2003で作成した[.mdb]ファイルを新拡張子である[.accdb]のファイルに変換する方法です。 新拡張子でなければ使えない ...