1

これがすでに答えられている質問だと思う前に、聞いてください。

Access MDB ファイルを継承しました。2 つのテーブルがあります (実際には 4 つですが、私が本当に関心があるのは 2 つだけです)。1 つは、オートナンバー型フィールドを持つメンバ テーブルです。2 番目のテーブルには同じフィールドがありますが、ID フィールドは単純な数値 (オートナンバー型ではありません) です。この 2 番目のテーブルは、「退職」した人々の名前を取得します。

今の問題は、一部の人々が戻りたいということです。それらは新しい ID 番号を取得し、他のすべてのレポート データ (前に言及しなかったもの) は、2 つのテーブル間でまだ一意である元の ID 番号にキー付けされているため、それらをコピーして戻すことはできません。

私がやりたいと思うのは、「廃止された」テーブルからデータをマージできるように、オートナンバー型フィールドを一時的にオフにしてから、オートナンバー型をオンに戻すことです。しかし、AutoNumber ID は他のテーブルやさまざまなレポートに関連付けられているため、Access ではそれができません。(私は他のテーブルを気にしていると思います。)

この答えは近いですが、アクセスで自動番号を使用して生成された古いIDを持つレコードを追加していますが、1行に焦点を当てています。私はたくさん持っています。この回答と同じ: Microsoft Access データベースにインポートするときに autonumber 列の値を保持します

2番目の答えは本当に近いと思いますが、docmd.RunSQL の使い方がわかりません。

これが単純で、明らかなことを見逃しているだけの場合は、Access の NOOB であることを認めます。

4

1 に答える 1

2

AccessINSERTでは、挿入する数値が既存の値と競合しない限り、自動付番フィールドの数値を含む行を使用できます。そして、「2つのテーブル間でまだ一意の元のID番号」であるため、それがあなたの状況のようです。

次の 2 つのテーブルを検討してください。

tblメンバー

id fname
 1 Anne
 3 Cathy

tbl引退

id fname
 2 Bob
 4 David

このINSERTステートメント (Access クエリ デザイナーはこれを"追加クエリ"と呼んでいます) は、tblRetired行を に追加しますtblMembers

INSERT INTO tblMembers ( id, fname )
SELECT r.id, r.fname
FROM tblRetired AS r;

これはtblMembersそれを実行した後ですINSERT...

id fname
 1 Anne
 2 Bob
 3 Cathy
 4 David
于 2013-10-05T05:31:13.567 に答える