• ベストアンサー

アクセスでテーブル内容を書き換えたい

アクセスで商品管理を行っていますが、商品マスターのテーブルに商品毎のIDを付けて出荷データなどを入力していたのですが、その後商品が増えマスターの空き番号を使うと商品群がバラバラになってしまいます。 そこでIDを付け直したいのですが、番号を変えると当然過去の出荷データの整合性も取れなくなってしまいます。 うまく変更する方法があれば教えてください。 判りづらい質問で申し訳有りません。

質問者が選んだベストアンサー

  • ベストアンサー
  • saikumi
  • ベストアンサー率33% (18/53)
回答No.2

データ管理は大変ですよね。 どのようなデータ型で管理をなさっているか、はっきりとは分からないので一案なのですが・・・ 「連鎖更新」の機能ではダメですか? リレーションシップのウィンドウで、それぞれのテーブルの結合線をダブルクリックして設定できます。(参照性合成の設定をしたあのウィンドウです。) 「連鎖更新」を使えば、主テーブルのコードを変更することにより、リレーションが設定されている関連テーブルのコードも変更されます。 ただし、主キーなどに「オートナンバー型」を使っている場合は、効果はないようです。 ↓参考までに、下記HPの「連鎖更新」を見てみてください。

参考URL:
http://support.microsoft.com/default.aspx?scid=kb;ja;304473
kenchan2001
質問者

お礼

ありがとうございます。 参考URLを読みましたが難しそうでデータを破壊してしまうとこわいのでファイルそのものを年度毎に変更することとしました。期首、期末は少し面倒ですが過去のデータも守られるしやむを得ないかと思います。 それにしてもアクセスは難解ですね。

その他の回答 (1)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 >番号を変えると当然過去の出荷データの整合性も >取れなくなってしまいます。 まさにその理由で、IDの付け直しは止めた方がいいです。 空き番号はそのまま欠番にして使用した方がいいです。 データ内容にもよりますが、IDを付け直してデータの整合性を保つのは、非常に難しい処理になる可能性があります。 特に不都合が無ければ、IDの付け直しは止めるべきです。 何か不都合があった場合も、別の手段を考えた方がいいです。

関連するQ&A

  • Access マスターテーブル

    Accessについて。 テーブル1がID(主キー)、注文日、商品番号、納期など入力欄の項目で、テーブル2が商品番号(主キー)、商品名で商品のマスターテーブルになっています。 商品番号を入力すれば商品名が表示されるようにクエリを作成し、そのクエリからフォームを作っています。 ここまでは良いのですが、新しい商品番号を入力したときに限りフォームから商品名も入力する事でマスターテーブルに登録されるようにしたいのですが、どうすれば良いでしょうか?

  • Accessで、二つのテーブルを比べて、ダブってないデータだけ取り出すことって出来ますか?

    えーっと、Accessで入荷情報の処理ソフトを作ってます(大きくつまづくごとに質問させていただいてますがw 商品名を検索して今月の入荷数を入力・・・といった具合にデータを入力していくわけですが、毎月月末に一度だけ入力するので、同じ月に同じ商品の入荷数を二度入力するということはありません。 なので、一度入力した商品データは次に検索したときに検索にひっかからないようにしたいのですが・・・。 二つのテーブル・・・マスタテーブルと入荷情報のテーブルがあって、入荷情報テーブルに入力されている商品IDをマスタテーブルの商品IDと比べて、違うのだけ抽出、とやれば出来そうな気がするのですが・・・どうやれば良いのかさっぱり分かりません。 一応、ネットで検索かけてますが、どう検索していいやら分からず右往左往してます(汗 詳しい方、どうかご教授願いまする。

  • Access2010でテーブルの内容で検索

    現在Accessの勉強をしています。 Aテーブル、Bテーブルとあり、 AテーブルはID(オートナンバー)、番号(数字)、名前(文字列)が入っています。 この番号は重複ありで、複数レコードあるとします。 Bテーブルも同じようなID、番号、名前が入っていて、ここの番号は重複していません。 いわばマスタテーブルのようなものです。 (IDと番号を別ける必要があるのかなど、細かいことはこの際気にしないでください。) Aテーブルの全てのレコードの番号を検索し、Bテーブルにない情報だけを表示したいと思います。 この場合どのようにすればよいでしょうか? まだAccessを勉強したてで、よくわかっていないのですが、シンプルな方法はどのようにすれば良いのか思案中です。 よろしくお願いします。

  • accessのテーブル二つで一つのテーブルを

    ACCESS97を使用しています。 テーブル1 製品番号  出荷日      出荷数  100     2012/12/1      3  101     2012/12/13      2  105      2012/12/1       5  108      2012/12/5       6 テーブル2 製品番号 売上日 売上数 売上金額 100     2012/12/1   3   3,000 101     2012/12/13   4   5,000 111     2012/12/10   10   500 二つのテーブルがあり、どちらもfrom to の期間指定で大きなテーブルから取り出しています。テーブル1のみにあるデータ、テーブル2にあるデータどちらにもあります。 これを一つのテーブルにまとめて下記のようにしたいのですが、できますか。 製品番号 出荷日   出荷数    売上日     売上数   売上金額 100   2012/12/1     3         2012/12/1      3     3,000 101   2012/12/13     2           2012/12/13       4   5,000 105   2012/12/1      5          null      null     null 108   2012/12/5     6          null      null      null 111     null       null       2012/12/10      10      500 このようなテーブルにしたいのですが、できますか。  access使用歴は長いのですが、簡単なクエリとかしかできなくてなさけなく思っています。これを機に少し勉強したいと思ってますが、取り掛かりからわかりません。よろしくお願いいたします。

  • Access アクセスについて

    Accessでデータベースを作っています。 テーブル、クエリは下記のようになっており、リレーションシップで紐付けしてあります。 クエリからフォームを作成し、商品番号を入力することでマスタテーブルに登録されていれば自動で商品名等の情報が表示されるようになっています。(フォーム1) 商品番号を入力しカーソルが移動した時、マスタテーブルに該当する項目がなかった場合、マスタテーブルから作成した新規追加用のフォームが表示されるようになっています。(サブフォームではありません) 新規追加用フォームに商品名を入力し、閉じてもフォーム1の商品名の欄に反映されません。新規追加用フォームを閉じる時にVBAで”Requery”,”Refresh”もやってみましたがダメでした。商品番号を入力し直すと表示されます。 どうすれば自動で商品名が表示されるようになるか教えてください。 テーブル1(入力用) 1.ID(主キー) 2.商品番号 3.etc. テーブル2(マスタテーブル) 1.商品番号(主キー) 2.商品名 3.etc. クエリ 1.ID(テーブル1) 2.商品番号(テーブル1) 3.商品名(テーブル2) 4.etc.(テーブル2) 5.etc.(テーブル1)

  • アクセス2003 テーブルについて

    昨日も別の質問でお世話になりました。 回答いただいたやり方で作業を進めているのですが、もうひとつ伺いたいことが出来ましたので、新たに質問させて頂きます。 会社の商品データを作っているんですが、下記のようなことは出来るんでしょうか? <商品マスター> ID 商品名 商品説明 備考 <仕入記録> ID (商品マスターとリンク) 商品名  仕入数量 仕入単価 この二つのテーブルを作り、<仕入記録>のIDに入力した時点で<仕入記録>の商品名に<商品マスター>の該当する商品名が自動で入るようにしたいのですが。 これは可能でしょうか?

  • ACCESS2000 テーブルの更新方法

    テーブルAがデータベース(商品番号、単価)が入力されています。 テーブルBが入庫されたデータ(オーダー番号、商品番号、個数)が入力されてます。 クエリで 入庫されオーダー番号を入力すると、テーブルBから入荷した商品番号、個数、テーブルAから単価が表示されるようになっています。 商品番号でリンクさせている状態です。 そこで単価に変更があった場合、この時点でテーブルAの単価を上書き訂正したいのですが、入力できませんでした。 何かよい方法はありますか?アクセスはじめたばかりでよくわかりませんが、よろしくお願いします。

  • Access2007についての質問です

    Access2007を用いて、旅館の在庫管理をしたいのですが、 おおまかなイメージがつかず、手詰まり状態となってしまいました。 商品、商品注文、顧客のマスターを作成し、在庫テーブルを作ってクエリで現在在庫数を  現在在庫数: [総在庫数]-[現在出荷数]  のように表示させました。 各テーブルについては サービスマスター:ID、サービス名、価格 顧客マスター:ID、氏名、住所、電話番号 注文マスター:注文ID、顧客ID、サービス名、注文日、納品日 商品注文マスター:商品注文ID、顧客ID、商品名、注文日、納品日 商品マスター;商品ID,商品名、価格 となっています。 この後は、商品注文フォームから現在出荷数を随時更新できるようにしたいのですが どのように行うべきでしょうか。よろしくお願いします。

  • Access フォームのデータがテーブルに反映されない

    こんにちは。 現在、アクセスを使って簡単なデータベースを 作っていたのですが、ひとつわからないことがございます。 テーブルを二つリレーションを組んで、 フォームを作ったのですが、 うまく二つのテーブルにデータが 保存できません。 フォーム:顧客ID、名前、電話番号 サブフォーム:商品ID、商品名、納期、など。。。 こういった二つのテーブルで、サブフォームの方のテーブルに 顧客のデータも保存したいんですが、できるものなのでしょうか? 初心者でわかりづらくて、 大変申し訳ございませんが、よろしくお願い致します。

  • accessで困っています

    access2000で、簡単な在庫管理ソフトを作っています。 商品マスタ(商品No、商品名、在庫初期値) 入荷マスタ(日付、商品名、入荷数) 出荷マスタ(出荷履歴No、日付、得意先名、商品名、出荷数) をテーブルに設け、商品を出荷入力すれば、初期値ー出荷数+入荷数をクエリ上で計算し、在庫数とし表示させています。 これに、出荷入力をしてそれを納品書として印刷させます。当たり前ですが、1商品出荷につき1枚の納品書しか印刷されません。 商品マスタに、商品名2や商品名3を設け、1枚に3種類まで印刷させようとすると、在庫計算方法がよく分からなくなります。 初心者で、どの様に作っていけば良いのかわかりません。 皆様のお知恵をお貸しいただけますでしょうか。 宜しくお願い致します。

専門家に質問してみよう