VBA を使用して を変更しDAO.TableDef
、追加する前に新しいフィールドのOrdinalPosition
プロパティを指定できます。イミディエイト ウィンドウからこのサンプル セッションを構築できるかどうかを確認します。
set db = currentdb
for each f in db.tabledefs("DiscardMe").fields : _
? f.name, f.ordinalposition : _
next
ID 0
empid 1
dtpunched 2
fake_yesno 3
set newfield = db.tabledefs("DiscardMe").createfield("fld2", dbtext)
newfield.ordinalposition = 1
db.tabledefs("DiscardMe").fields.append newfield
ただし、テーブルにはOrdinalPosition
= 1 の 2 つのフィールドが含まれていることに注意してください。
for each f in db.tabledefs("DiscardMe").fields : _
? f.name, f.ordinalposition : _
next
ID 0
empid 1
dtpunched 2
fake_yesno 3
fld2 1
Access のヘルプ トピックでは、「同じコレクション内の 2 つ以上の Field オブジェクトが同じ OrdinalPosition プロパティ値を持つことができます。その場合、それらはアルファベット順に並べられます」と説明されています。 したがって、クエリ は次のようになりますSELECT TOP 1 DiscardMe.* FROM DiscardMe;
。
ID empid fld2 dtpunched fake_yesno
1 100 4/3/2012 0
いくつかの改良により、そのアプローチはあなたが望むものを得るかもしれません。ただし、列の序数に依存することは避けます。それらが変更されたとしても、コードを壊したくありません。