• ベストアンサー

Access、更新クエリ実施後更新用データ削除

こんにちは、いつもお世話になります。MS-Access2003です。 マクロで、更新クエリを開いて更新を実行したとして、 その「クエリを開く」行の次に、更新用のデータの入ったテーブルを空にする行を追加したいのですが、関数が分かりません。 何というマクロアクションを指定すれば良いでしょうか?

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

  • ベストアンサー
  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.3

「マクロで」 ということなら 簡単に考えれば 「更新用のデータの入ったテーブルを空にする」 削除クエリを作っておき 「クエリを開く」 で 削除クエリ を実行する。 新たに クエリを作りたくない、ということなら No1 さんの VBA と同等の処理を マクロで 行えばよろしいでしょう。 アクション : SQLの実行 SQL ステートメント : DELETE * FROM テーブル名

hisahi
質問者

お礼

お礼が遅くなってしまい、失礼しました。 考えればそのとおりでした。 早速参考にさせていただきます。

その他の回答 (2)

  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.2

蛇足な追記。 テーブルの更新やレコードの削除を繰り返すような処理が多い場合は、定期的に「データベースの修復」を行いましょう。 Accessは、テーブルの更新やレコードの削除を繰り返すと、内部的な「ゴミ」が蓄積し、ある日ある時、突然に「データベースを修復しないと、一切、何も出来ませんよ」って言う意味のエラーを吐いて、何も出来なくなります。 なのでバックアップ処理のような「毎日1回は行う処理」の所で、バックアップを兼ねて、マクロで「データベースの修復」を行うと良いでしょう。

hisahi
質問者

お礼

なるほど。 いつも「閉じる時に最適化する」で処理していました。 参考にいたします。 ありがとうございました。

  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.1

DoCmd.RunSQL "DELETE * FROM テーブル名;"

hisahi
質問者

お礼

ありがとうございます。 お礼が遅くなってしまい、失礼しました。 今回は単純なアクションで考えてみたいと思います。

関連するQ&A

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

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

  • アクセス2003 更新クエリでダイアログを表示させない方法

    アクセスで、十数個の更新クエリをマクロで自動的に実行したいのですが、100万行くらいあるDBで、メモリ不足のせいか、「ディスクの空き領域またはメモリが不足しているため、このアクションクエリによるデータの変更を元に戻すことはできません」というダイアログがクエリの度に表示されてしまいます。これを表示させずに十数個の更新クエリを自動的に終了させたいのですが、方法をご存知の方がいらっしゃったら、教えていただけますでしょうか。

  • Accessのクエリについて

    Accessの初心者です。 “クエリ”がよくわからなくて困っています。 (1)テーブルの情報を更新した場合、クエリも自動で内容が更新するのでしょうか? 複数のクエリがある場合、テーブル更新後すぐにアクセスを閉じて、次にアクセスを起動させた時はクエリの内容も更新されるか。 それとも、テーブル更新後に各クエリを実行しないと更新しないとでしょうか。 (2)クエリ実行後、表示されたデータの一部を書き換えて出力した場合、元のテーブルの内容も変更されてしまうのでしょうか。 教えてください。 どうぞよろしくお願い致します。

  • Accessで作ったクエリーを使ってさらに更新する方法

    Access97のクエリーを使ってデータの抽出や更新を行なっています。Accessでは作成したクエリーを使ってさらにクエリーを作れると思うのですが、うまくいきません。 内容は以下のとおりです。 (1)ある条件で「抽出クエリー1」を作る (2)別の「テーブル」と「抽出クエリー1」をキーマッチングさせ、マッチしたものだけ「テーブル」を更新させたい。 やりたいことは単純なのですが、これを行なうと 「更新可能なクエリーでなくてはいけません」とメッセージが出てしまい、更新できません。作ったクエリーがいけないのかと思い、一度エクセルにエクスポートし、再度アクセスにテーブルとしてインポートするとうまくいきました。ですが、こんな面倒な方法はやってられません。 作ったクエリーを再び別のクエリーで使う為にはどうしたらよいのでしょうか? ちなみに、選択クエリーや追加クエリーではこのようなことが起こったことはありません。 アクセスに詳しい方、どうかよろしくお願いします。

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

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

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

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

  • 更新可能なクエリであることが必要です ACCESS

    更新可能なクエリであることが必要です Access2010で更新クエリをかけたいと思っています。やりたいことは以下になります。 クエリデザインで行おうとしています。 追加動物テーブル(重複したIDもあります。) ・ID ・数 追加動物クエリ(追加動物テーブルで数の合計をしています。重複IDがある為) ・sum(数) group by ID トータル動物テーブル(このテーブルに追加動物クエリで得た数を足し込みたいです) ・ID ・数 そこで、クエリデザインで更新クエリを行おうと思いました。 SQLは、 UPDATE トータル動物テーブル INNER JOIN 追加動物クエリ ON トータル動物テーブル.ID = 追加動物クエリ.ID SET トータル動物テーブル.数 = [追加動物クエリ]![数]; としたら、「更新可能なクエリであることが必要です」と表示されました。 目的としている、クエリで取得した数をテーブルの数に追加したいです。 例えば、トータル動物テーブルの001 猫の数が10だとします。追加動物クエリで得た猫の数が20だとします。 更新クエリが実行された時、トータル動物テーブルの猫の数が30になっていてもらいたいです。 ずっと悩んでいるのですが良いアイディアがでません。おわかりでありましたらお教え下さいませ。 宜しくお願いします。

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

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

  • Accessのクエリでデータの入力ができません

    Access2000を使っている超初心者です。 参考書に基づいて、2つのテーブルをリレーションシップして、選択クエリを作成したのですが、このクエリから既存データの修正をしようとすると入力できません。また、最終行に*マークの新規データ入力欄がなく、データの追加もできません。 フォームの方もこのデータソースをテーブルのひとつににすると*マーク行が出て入力できるのですが、このクエリにすると*マーク行が出てこないです。 参考書のとおりやってるつもりなのですが、何が原因でしょうか? よろしくお願いします。

  • アクセスの更新クエリーについて

    お世話になっております。 アクセスの更新クエリーについてできるかどうかわかりませんがお聞きしたいことが一つございます。 それは、アクセスで更新クエリーを実行時にメッセージボックス(定型)のがでてきますが、このメッセージボックスの内容を「データが更新しますか?YES/No」みたいな感じにシンプルなメッセージボックスにしたいと考えているのですが、このようなことは可能なのでしょうか? また、ついでといってはなんですが、アクセスのリンクテーブルマネジャを利用した場合、アクセスのデータには最大何人までデータベースを壊さずにアクセスできるのでしょうか?もちろん、同一レコードに数人が書き込みをしようとしていないことが前提だと思いますが(^^;もしよろしければ、リンクテーブルマネジャの概念的なものについてお聞かせいただけたらと思っています。 質問が一つにならずにしまいましたが、よろしくお願いいたします。