• ベストアンサー

特定のレコードのみの更新クエリ

過去ログより、項目の更新クエリはありましたが、 特定のレコードの更新方法はどう考えればいいのかアドバイスください。 テーブルには、毎月あたらしいデータがインポートされていきますが、 前月と比べて同じレコードは削除して常に新しいレコードにしておきたいのですが、これは一旦、重複クエリで重複レコードすべて削除してから新しいデータをインポートする2段階の方法をとるしかないのでしょうか?

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.4

>レコードの更新の欄には、各フィールドに関して、どのように書くべきなのでしょうか? 書き換えたいデータが入っている方のテーブルのフィールド名を書きます (フィールド名が同じ場合にはテーブル名もつけた形で書きます)

9nainai9
質問者

お礼

>フィールド名が同じ場合にはテーブル名もつけた形で書きます これで納得でうまくいきました。更新クエリも色々苦労してやっとできたかんじです、アドバイスありがとうございました。

その他の回答 (3)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.3

>商品番号、もしくは商品名が一緒という 特定なレコードを抽 >出する、構文がどうしてもわかりません。 クエリで同じものを結合するだけでいいのでは >Bテーブルは毎月テーブルが入ってくると >きに、一旦データ削除し、もういちど新しいデータを >Bテーブルにインポートするという過程をすればいいのでしょうか? こうするのがテーブル名やリレーションシップが変らないので一番いいですね

9nainai9
質問者

お礼

ありがとうございます。 単純なことまで見えなくなってしまうそれだけ、まだスキルがないんですね。それで更新クエリで更新というのはわかるのですが、 レコードの更新の欄には、各フィールドに関して、どのように書くべきなのでしょうか?これもまたSQLをひらいて、関数等をかいていかないといけないのでしょうか? もとのデータに対して、特定レコードのみ更新する場合の更新欄の書き方がわかりません。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

どのSQLを使うかによってだいぶ違うとおもいますが、 今回の件であればUPDATEでたいていできてしまいそうですけどね・・・ あとはミドルウェア次第

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

特定のレコードだけを取り出すクエリを作り それを更新クエリに変えてやればいいのです

9nainai9
質問者

お礼

CHRONOS_0さん。毎回の質問に答えてくださりありがとうございます。 削除クエリではなく、データ抽出後の更新クエリというアドバイス、了解いたしました。 Aテーブル(元になるテーブル) [商品番号] [商品名]  Bテーブル(毎月のテーブル)  [商品番号] [商品名] ただ、この場合、商品番号、もしくは商品名が一緒という 特定なレコードを抽出する、構文がどうしてもわかりません。 毎月のテーブルは毎回かわるのに、それを制御する構文がつくれるのでしょうか? それと毎月のデータからテーブルを作るので、一度、特定のレコードだけを取り出すクエリを作った場合、この場合、Bテーブルは毎月テーブルが入ってくるときに、一旦データ削除し、もういちど新しいデータをBテーブルにインポートするという過程をすればいいのでしょうか?

関連するQ&A

  • 更新クエリがわからない

    windows-xp、Access2003を使っています。 参考書に載っている更新クエリは「同一のテーブル内でデータを更新する」という内容で載っているのを見ました。 が、そうではなく・・・ 更新クエリを作成すると「レコードの更新」という欄が出てくるのですが、そこに、別のテーブルや別のクエリのデータを”ビルド”で作成することはできないのでしょうか? 試みたのですが、”パラメータの入力”というものが出てきてしまいました。 ついでにおわかりになれば、これも教えてください。 ↓↓↓ テーブルAとテーブルB(或いはクエリB)に、同じIDをもつデータがあります。そこで、テーブルAの指定するフィールドへ、テーブルBの新しいデータを入れ込みたい(更新)させたい。 すみませんが、宜しくお願い致します。

  • Accessの更新クエリについて質問です。

    よろしくお願いします。 集計したクエリを元に更新クエリを実行すると、更新できません。 やりたい作業としては、売上データテーブルのレコード数を得意先ごとにカウントして、得意先マスタテーブルのレコード件数フィールドを更新する作業です。 追加クエリで一度テーブルに追加してから、テーブル同士で更新も考えたんですが、レコード数が多いためにDBのサイズが爆発的に増えて廃案になりました。 何か良い方法があれば教えてください。

  • クエリ上でのデータ更新

    Accessのクエリで、クエリ実行した画面の抽出されたデータ上で、データの書き換え・更新ができるクエリと、「このレコードセットは更新できません」と左下に記載されてしまい更新できないクエリがありますが、この2つにはどんな違いがあるのでしょうか? おそらく、元になっているテーブルの何かの設定が違うのだろうかと思うのですが、それがよくわかりませんので投稿しました。 よろしくお願いいたします。

  • ACCESS2000 クエリーを開いてテーブルのデータを更新したい

    ウィンドウズ98,ACCESS2000です。 二つのテーブルがあって、リレーションがあります。 これを元にクエリーを作成して、クエリーを表示させたフォームでデータの更新や削除を行いたいと思っております。 が、実際やろうとするとこのレコードセットは更新できませんとでます。 何か考えられる理由はありますか? よろしくお願いします。

  • ACCESS【更新クエリの中断ができない】

    ACCESS初心者です。質問がわかりにくかったらすみません。 ACCESSの更新クエリで、レコードのカンマをスペースに置き換える式を作りました。 クエリを実行すると、 ”更新クエリを実行すると、テーブルのデータが更新されます” と、メッセージが表示され”はい”で次に進むと ”*件のレコードが更新されます。”と正確な件数が表示されます。 ただ、ここでやはり中断したいと思い、”いいえ”を選択しても、 レコードは更新されてしまいます。何故でしょうか?教えてください。 ______________________ フィールド:     型名 テーブル:      データ統合 レコードの更新:  Replace([型名],","," ") 抽出条件:     Like"*,*"

  • アクセスのクエリで

    あるテーブルはエクセルからインポートしていますが、全てのフィールドが空白というレコードが多数存在します。 これをクエリで(他に方法があればどの様な方法でもよいです)全てのフィールドが空白のレコードは表示しない様にする事はできますか? これを更新クエリにして、新しく全て空白のフィールドのレコードが無いテーブルを新たに作ろうと考えています。 教えて下さい。よろしくお願いします。

  • 更新クエリでキー違反

    クエリAのあるレコードからテーブルBのレコードにデータを流そうとします。 テーブルBのレコードにデータがちゃんと入っている と上手くデータが流れて更新されるのですが、IDと 名前しか入っていなかったりするとキー違反になるのです。 とても抽象的ですが、 どうして大丈夫なときとダメなときが発生すると 考えられますか?

  • 更新クエリでテーブルを書き換えたい

    データが0件のテーブルに、更新クエリで一つのレコードを追加したいのですが そもそもテーブルにデータが入ってない状態だから更新すらできないのですが こういう時どうすればいいでしょうか? Ttest01テーブルにaを入れたい場合、 UPDATE Ttest01 SET Ttest01.test01 = "a"; これだとうまくできません。 Ttest01のtest01フィールドの1行目にaを入れる方法を教えてください。

  • Access クエリ このレコードセットは・・・

    いつもお世話になります。 Accessで下記の様にクエリを作成しましたが、”このレコードセットは更新できません”と出てしまいます。 ■テーブル1  ・顧客ID(主キー)  ・顧客名  ・住所  ・TEL ■テーブル2  ・顧客ID  ・取引ID(主キー)  ・請求金額 ■クエリ1(集計クエリ)  ・顧客ID グループ  ・請求金額合計: Sum(請求金額) 合計 ■クエリ2(実際に使用するクエリ)  ・顧客ID(テーブル1)  ・顧客名(テーブル1)  ・住所(テーブル1)  ・TEL(テーブル1)  ・請求金額合計(クエリ1) このクエリ2を開いて更新しようとしても、”このレコードセットは更新できません”と左下に表示されて更新できません。 ・請求金額合計(クエリ1)を除けば問題なく更新できます。 ですが1顧客に対して通算で幾ら請求をしたかとその顧客のデータを同一クエリで表示・更新したいので、意味をなさなくなってしまいます。 どなかた良い方法をご教授下さいませ。

  • 2つのテーブルで重複する値のレコードを削除したい

    削除クエリ?重複クエリ?について教えてください。 テーブル1 フィールド"番号"には 1 2 3 テーブル2 フィールド"番号"には 3 4 5 があるとします。 「テーブル2と重複しているテーブル1のレコードを削除する」 (この場合「3」が重複しているのでテーブル1の3が入力されているレコードを削除) としたいのですがどいゆうSQL文を書けばいいのかわかりません。 ご教授よろしくお願いします。