質問: 閲覧ありがとうございます。 削除クエリについて教えて頂きたいです。 今、社員の管理表をaccessで作成しています。 わが社では定年を迎え再雇用になると社員番号が変わります。 最初に管理表を作ったときあまり深く考えず社員番号が変わる前と変わった後の社員2つともレコードに入れていました。 しかし今になってそれじゃこれから作りたいものが作りずらくなるため社員番号が変わる前(再雇用者の元社員番号)のレコードを消し 今の社員番号のフィールドに旧社員番号を追加して保管していこうと思いました。 しかし、前の状態で作り続けていたため色々リレーションシップを組んだりいろんなテーブルで使っていたりとすごくややこしいため 削除クエリで一括で消したいと思います。 削除クエリなどでは複数テーブル、複数レコードを一括で消せるのでしょうか? 消したい社員番号も6人ほどいるので抽出条件も複数になってしまいます。 私ではなにも思いつかないのでお力を貸して頂きたいです。 VBAのほうが楽であればそちらもご教授お願い致します。 分かりづらくて申し訳ございませんが宜しくお願いします。
回答: リレーションシップを組んでいるなら参照整合性の連鎖削除で消せばいいと思います。 いくつテーブルがあっても社員番号が主キーのテーブル(1側)から削除されれば、ほかのテーブル(多側)からも削除されます。 ただ社員番号が増えることで作りづらくなるっていうのがちょっとよくわからないですね。 社員番号が主キーのテーブルっていうのはまったくもって普通の仕様だと思います。 どうしても変えたいなら「人間テーブル」みたいなものを作って 人間IDと社員番号を一対多にするくらいでしょうか。 列で旧社員番号っていうのは私の感覚では「あとで苦労しそう」という作り方ですね...。