Accessでパラメーター以外の削除方法は?

このQ&Aのポイント
  • Windows7、Access2010を使って、データベースの作成をしています。削除クエリを使い、レコードの削除を行っているのですが、検索条件にパラメーターを使っています。このデータベースは、私以外のユーザーに使ってもらうのを前提に作っています。そのため、パラメーターにわざわざ入力させずにすむ方法を探しています。
  • VBAを使わず、Accessの機能ですませたいです。
  • レポート画面に必要情報が一覧で表示され、その中から、削除したいデータを選んもらいます。ボタンをクリックすると、埋め込んだ削除クエリが発動、パラメーターで使う相手に手入力で消させています。レポート画面上のデータを直接クリックしたり、それぞれのデータ横にあるボタンをクリックしたら、データを消すことができる方法をありましたら、教えて下さい。
回答を見る
  • ベストアンサー

Accessでパラメーター以外の削除方法は?

Windows7、Access2010を使って、データベースの作成をしています。 削除クエリを使い、レコードの削除を行っているのですが、検索条件にパラメーターを使っています。このデータベースは、私以外のユーザーに使ってもらうのを前提に作っています。そのため、パラメーターにわざわざ入力させずにすむ方法を探しています。 VBAを使わず、Accessの機能ですませたいです。 レポート画面に必要情報が一覧で表示され、その中から、削除したいデータを選んもらいます。ボタンをクリックすると、埋め込んだ削除クエリが発動、パラメーターで使う相手に手入力で消させています。 レポート画面上のデータを直接クリックしたり、それぞれのデータ横にあるボタンをクリックしたら、データを消すことができる方法をありましたら、教えて下さい。 宜しくお願いします。

noname#194393
noname#194393

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

  • ベストアンサー
  • tamu1129
  • ベストアンサー率58% (1248/2131)
回答No.2

>クエリの抽出条件に「~を入力して下さい」と入れておきます。この削除クエリをボタンに埋め込み、一覧を表示させているレポートに設置します。 ボタンをクリックすると、パラメーターが出て、ユーザーに入力させることによって、レコードを消しています。 この部分の意味がわかりません テーブルにあるデータを全件表示しているって事ですよね? そのデータの中から削除するデータを抽出してそれを削除したいって事ならば、全データの中から削除するデータを選択しなければいけないので、パラメータクエリ使う必要あります パラメータクエリなので、当然そのクエリ実行する時にはデータ入力求められます フォームの中のテキストBOXなどにパラメータの値を最初に入れておけば、パラメータクエリはそのテキストBOXの値を参照して実行させる事も出来るのでそのようにすれば、クエリを実行した際にはパラメータ入力必要ありませんが、事前にテキストBOXに値を入力しなければいけないので入力する手間が省ける訳ではありません 最初のコメントにも書きましたが、ユーザーは勝手な作業を行います 結果、後から取り返しも付かないような事態がおとづれるので、データ削除は安易に行う物ではありません 特にデータベースは入力されたデータを蓄積させ、そのデータを後から活用する為のソフトです doliuyhrmさんやデータベースの管理をする人をきちんと立ててどうしてもデータを削除したいならば、その人(データベース管理者)がデータ削除を行うべきです ユーザー側は単にデータが画面に表示されなくなれば良いだけです 具体的に言うならば、今使っているテーブルの構成に1つフィールドを追加します この追加したフィールドをチェックBOXとして作成します ユーザーには削除したいデータをマウスクリックで、チェックを入れさせます フォームを作成した時に、このチェックBOXをクリックする動作をした後に画面をリフレッシュさせるようにしておきます そうする事で、ユーザーが見ている画面からは選択したデータが見えなくなります(データとしてはそのままテーブルに残っている) もし、ユーザーが間違えてチェックを入れてしまった場合には、間違えて消したデータを呼び出せるようなパラメータクエリを作成しそのデータを表示させるフォームを作成しデータを表示させチェックBOXに入っているチェックを外させます 最初のフォームをリフレッシュさせれば間違って削除(実際にはチェックBOXにチェック入れただけ)が再び一覧の中に入って出てきます 本当は入力したデータは削除するべき物ではありませんが、どうしても削除したいならばチェックBOXにチェックが入ったデータを選択クエリで一括選択して削除してしまえば良いです ただし、この削除作業はデータベース管理者が行うべきでしょう

noname#194393
質問者

お礼

回答ありがとうございます。 初めての質問で、聞きたいことがうまく書けませんでした。 入力していただきました内容は、Access作業に活用させていただきます。 お答えいただき、大変助かりました。

その他の回答 (1)

  • tamu1129
  • ベストアンサー率58% (1248/2131)
回答No.1

なぜレポートで作業をするのでしょう? 普通は操作はフォーム上で行い、最終的にレポートはその結果を印刷させる為の物でしょう 選択クエリなり、パラメータクエリなりで選択したデータをフォーム内に一覧表示させる いらないデータは、その該当レコードを右クリック→削除で出来るでしょうに でも、ユーザーに勝手に簡単にデータ削除できるデータベースだといつの間にか必要なデータまで削除されて後から大変な目にあいますよ 面倒でも、削除用のフォームで削除するデータを一旦表示させ、確認させてから削除するような仕組みにした方が良いと思いますが

noname#194393
質問者

補足

説明不足で申し訳ありません。 行いたいことは、まず、レポートでもフォームでもいいので、レコードが一覧に表示されている画面を作ります。私以外の人がユーザーとして使うので、テーブルではだめです。 その画面から、データを削除するシステムを作りたいのです。画面上には、データがリストアップされているので、使用者は消したいデータを目で選ぶことができます。 この状態から、データを消す方法が問題なのです。 現状では、クエリの抽出条件に「~を入力して下さい」と入れておきます。この削除クエリをボタンに埋め込み、一覧を表示させているレポートに設置します。 ボタンをクリックすると、パラメーターが出て、ユーザーに入力させることによって、レコードを消しています。 私以外の人が使うので、わざわざ入力させるという手間がかかる以外の方法を探しているのです。 お聞きしたいのですが、データが一覧で表示されているフォームから、削除用フォームへ行くやり方はどうすればよいのでしょうか? 理想は、フォーム上のデータ一覧にリンクか何かを貼って、それをクリックすると、クリックしたデータのみが表示されている削除用フォームへ行くことができるか、表示されているデータの横にボタンがあり、それをクリックすることで、同じくクリックしたデータのみが表示されている削除用フォームへ行くことができるようにしたいのです。 ご都合がよろしければ、お願い致します。

関連するQ&A

  • Accessの使い方についてご質問。

    Windows7、Access2010を使って、データベースの作成をしています。 レポートから、別のレポートへ行く方法について質問です。VBAを使わず、Accessの機能ですませたいです。 テーブルから、パラメーターを使って特定のデータを抽出する、クエリを作成・レポートにしました。 現状は、あるレポートに設置したボタンをクリックすると、前記したパラメータ―クエリが発動、ユーザーに条件を入力させます。入力・OKボタンを押すと、レコードを抽出、条件に合ったデータのみが表示されたレポートへ行く仕組みです。 使う相手に入力させる手間をかけさせず、レポートからレポートへ行く方法を探しています。行く先のレポートは、条件分岐や抽出によって、特定のレコードのみ表示させたいのですが、今のところ、パラメータークエリをレポート化、ボタンにそのクエリを埋め込んで、クリックするとそのクエリが発動して、条件をユーザーに入力させ、一致したレコードのみが表示されたレポートに行く仕組みしか方法が分かりません。パラメーターにわざわざ入力させずにすむ、良い方法がありましたら、ご教授をお願いします。 理想としては、ボタンを設置してあるレポートに、抽出対象となるレコードが一覧で並んでいますので、それをクリックしてジャンプできるか、それらのレコード横にボタンを用意して、そのボタンを押すことで、レポートに行くことができればいいのですが。 宜しくお願い致します。

  • アクセス2007のレポートのパラメータの外し方

    レポートからパラメータの入力画面が出ないようにするには、どのようにすればよいのでしょうか? 今の状態としては以下のとおりです。 パラメータを設定したクエリに基づくレポートを作成した後、そのクエリからパラメータの設定をなくしさらに、プロパティのデータで元となるデータを別のもの(クエリのもとにしていたテーブルです)に変更しました。クエリからパラメータをなくすとレポートのパラメータ設定もなくなったのですが、テーブルに変更するとパラメータを入力する画面が出るようになってしまいました。しかし、何も入力をせずにOKボタンをクリックするだけでレポートを開くことができます。 どなたかよろしくお願いいたします。

  • 【Access2000】レコードの抽出方法

     Access2000を使用してデータベースを作成していますが、抽出条件でつまずいています。  具体的には、  【1】選択クエリーAを基に作成したフォームA(単票形式でレコードを1件ずつ表示)があります。  【2】フォームAの中に単票形式でレポートを出力するマクロボタンが有。  【3】現在はマクロボタンを押すとパラメータで「データNo.?」と入力してもらう形になってレコードを1件抽出する形になっています。    ※画面上に表示されている「データNo.」フィールドの数値を入力してもらう形です。  質問についてですが、今のところはパラメータを入力してもらいレコードを抽出→レポートを出力していますが、パラメータを使わず、現在、フォーム上に表示されているレコード(表示されている1件)を抽出する方法はないかと壁にぶち当たっています。  言い換えれば、レポートを出力する際の元になるクエリの抽出条件で「現在、表示されているレコード」をどのように記述すればいいか、もし御存知の方がいらっしゃいましたら御教示お願いいたします。

  • ACCESS2000 パラメータークエリー

     ウィンドウズ98、ACCESS2000です。  パラメータークエリーの作り方で、とあるテキストを入力すると それに対応するレコード抽出というのありますか?    とある日付を入力すると、それに対応するレコードを持ってくる パラメータークエリーは作れます。

  • Accessのフォームから削除したレコードをテーブルに保存したい

    Accessを利用してフォームからデータを入力しているのですが、クエリを使わずフォーム画面から不必要なレコードをコマンドボタンで削除しています。削除したレコードをテーブルに保存したいのですが、追加クエリで条件を決めずにフォームの画面から判断したレコードだけを削除し、かつ削除したレコードを削除専用のテーブルに追加する方法を教えてください。よろしくお願いします。

  • アクセス97のVBAでパラメータを指定する方法

    いつもたいへんお世話になっております。 アクセス97で、フォームを複数作りました。フォーム1、フォーム2、フォーム3。 それぞれのフォームのコマンドボタンでフォーム4を呼び出します。 フォーム4のレコードソースにクエリを使用しますが(クエリ1)、 このクエリにの抽出条件に、最初のフォームのコントロールの値(部門)を設定したいのですが、抽出条件に、「FORMS!フォーム1!部門」とすると、同じクエリを他のフォームには使えませんよね?パラメータを作成して、それぞれのフォームのコマンドボタンのなかで指定できてしまえば、クエリ1と、フォーム4を共有できますよね。現在は、それぞれのフォームに対応するフォーム4とクエリ1を作成しています。なんとかなりませんか? 説明が難しくなってきちゃった・・・ ・・・パラメータの入力要求をVBAで処理したいのですが、いい方法を教えてください。

  • アクセスの「パラメータ入力」??

    アクセスの初心者です。 昨日作ったレポートで、昨日までは何の問題もなかったのですが、今日開こうとすると、パラメータの入力という画面がでます。何も入力せずにOKを押すと正しくレポートが表示されます。 参照のクエリもこいつが出てたんですが、自分なりに調べて、昇順で並び替えを行ったら、クエリの方は消えましたが、レポートだけはどうしても消えません。 抽出条件等も何も入力していないし、マクロも組んでません。 ほかに確認するとこはあるでしょうか?よろしくお願いします。

  • Access2010、別画面への移動方法について

    ネットアプリのお客様管理データベースを、Windows7、Access2010を使って、作成しています。 画面にアプリをご利用いただいているお客様を、一覧で表示しているフォーム画面があります。ボタンを設置して、この画面からお客様情報詳細画面など、各画面へ行く方法を探しています。 (一例) 顧客ID お客様名 電話番号 1    あいう  03-1234-5678 2    かきく  03-1597-4563 現状のやり方です。コンボボックスでお客様名を全て出し、「お客様の詳細データを表示する」ボタンをクリックします。 ボタンには、あるクエリをフォーム化したページへ、ジャンプするマクロが埋め込んであります。 ボタンを押すと、フォームの元となっているクエリが発動。 このクエリは、抽出条件にコンボボックスを参照していて、選択したお客様名を読み込み、選んだお客様のデータのみが抽出されます。 その結果、コンボボックスでクリックした顧客の詳細データが表示された画面へ行く仕組みになっています。 この方法だと、お客様が例えば300名になると、コンボボックスで選びきれなくなります。 お客様一覧が画面上で出ているのに、わざわざコンボボックスから選択しないで済むやり方を探しています。 お客様名をクリックしてボタンを押す方式か、 各レコード横にボタンがあり、それを押すだけでジャンプする方式が理想です。 作ったものを他の人に見てもらったのですが、使いにくいインターフェイスという評価でした。やはり、表示されている全てのレコードの横にボタンが設置される。もちろん、データが登録されたり、削除されたりすれば、ボタンの数も連動します。ボタンをクリックすると、それぞれの画面へ行く方式がベストです。 (イメージ) 顧客ID お客様名 電話番号 1    あいう  03-1234-5678  「編集」ボタン 「削除」ボタン 「お客様データ詳細表示」ボタン 2    かきく  03-1597-4563  「編集」ボタン 「削除」ボタン 「お客様データ詳細表示」ボタン VBAを使わないで済むと助かります。 長文で申し訳ありませんが、宜しくお願いします。

  • Accessレポートでパラメータ

    こんにちは。 Accessについて教えて下さい。 レポートを開くと毎回、「ID」というパラメータが開きます。 未入力で「OK」すると、普通にレポートが表示されるのですが 面倒なのでパラメータを消したいです。 元になっているクエリにパラメータや並べ替え等の設定はありません。 IDフィールドに関しては、前任者が消したようで見当たりません。 分かりづらい質問ですが、お願いします。

  • ACCESSでデータ削除すると「読み取り専用」と出る

    WINXP、ACCESS2003 ACCESSで二つのテーブルの差分のクエリを作りデータの修正を行っています。 差分のクエリをそのまま、すべて選択してDeleteボタンでデータを削除しようとすると「データは読み取り専用です」と表示され、削除することができません。 レコードを選択して右クリックしても「削除」「新しいレコード」の箇所がグレーになっていて利用できません。 どこかが、読み取り専用になっているのでしょうか? ちなみに、元のテーブルは削除できます。 よろしくお願いします。

専門家に質問してみよう