• ベストアンサー

【Access2010】 更新以外不可

選択クエリーにパラメーターの入力を設定し、フォーム内で該当箇所のみデータ更新するようにしています。 しかし現状の設定では、該当するデータが無い場合でも空白のフォームが開きデータ更新=追加ができてしまいます。 該当するデータが無い場合は「該当データがありません」と表示させてフォームを開かないようにするか、開いても追加できないようにする方法はありませんか?

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1624/2466)
回答No.3

> 「フォームを開く」マクロを設定したコマンドボタンから開いています。 同じです。Aフォームのコマンドボタンからマクロ(フォームを開くでフォーム名だけ設定)でBフォーム(該当フォーム)を開いています。パラメーターはAフォームのテキストボックスを指定しています。 https://support.office.com/ja-jp/article/openform-%E3%83%9E%E3%82%AF%E3%83%AD-%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3-8ece67cc-783c-4b2e-9f33-0e24e8436a05 こちらのデータモードの説明の部分で Data Mode/データ モード" 引数の設定は、フォームの "AllowEdits/更新の許可"、"AllowDeletions/削除の許可"、"AllowAdditions/追加の許可"、および"DataEntry/データ入力用" の各プロパティの設定よりも優先されます。 ということなのですが、何かの間違いでマクロのフォームを開く設定でここの設定がされているという事はないでしょうか。 編集だと 既存レコードの編集および新しいレコードの追加を許可する場合は [Edit/編集] ことになります。 > Nullじゃないフィールドに「Is Not Null」を設定してもダメでした。 開いたときに表示されるNullのフィールドに他の条件とAndで設定してください。 こちらは2013なのでそのあたりの違いかもしれませんが。

KO1014
質問者

お礼

3度のご回答ありがとうございました。 さすがです・・・ご指摘の通りです。 データモードは必須項目だと思いこんでいたので「編集」を選択していました。 空欄にしたら何も表示されない状態で開いてくれました。 質問のたびに毎回ご回答いただき、本当に感謝しております。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率65% (1624/2466)
回答No.2

選択クエリの条件でIs Not Nullを該当フィールドに設定するというのはいかがでしょう。

KO1014
質問者

お礼

再度のご回答ありがとうございました。 Nullじゃないフィールドに「Is Not Null」を設定してもダメでした。

全文を見る
すると、全ての回答が全文表示されます。
  • kkkkkm
  • ベストアンサー率65% (1624/2466)
回答No.1

単純なもの(レコードソースが抽出条件をフォームのコントロールとする選択クエリの単純なフォーム)で試したのですが、該当するデータがない場合フォーム(詳細)にはすべてのコントロール(非連結コントロールも含めて)が表示されず、また、ヘッダーに連結コントロールを作成して表示させても入力はできなかったので、状況を把握できなかったのですが、フォームを開く時のイベントで該当コントロールがNullなら開かないとか、メッセージを出し更新の許可をいいえに設定するという設定ができるのではないかと思います。

KO1014
質問者

お礼

ご回答ありがとうございました。 説明不足で申し訳ありません。 確かにこのフォームを”直接”開くとコントロール等何も表示されない状態で開くのですが、今回は「フォームを開く」マクロを設定したコマンドボタンから開いています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

    アクセスの更新クエリにおいて、各レコードで繰り返し同じ数を入力しなければならないフィールドが3つあります。その3つをパラメータを設定し、更新クエリを設定して実行しようとすると2つまではパラメータで聞いてくるのですが、1つだけ聞いてきません。アドバイス宜しくお願い致します。

  • access,フォームで最新のコンボ内容が反映不可

    フォーム入力時、顧客や商品データが無い場合、フォームを開いたままで、そのテーブルを開き、顧客や商品データを入力、閉じます。 フォームでは、顧客や商品データはコンボボックスで選ぶ用にしていますが、それにテーブルに新たに入力したそのデータが出てきません。 フィールド→更新、やフォームを閉じ開きすれば、現れます。 これを、例えばボタンを作成し、テーブルにデータ追加後、ワンクリックで、フォームのコンボボックスに新入力データを反映させるにはどうすれば良いのでしょうか(SQLの方が良いか?)。 また、フォームのコンボボックスのデータは、フォームを開いた時のテーブルやクエリのデータそのままで、コンボボックス選択時に再読み込みなどはしないのでしょうか? 正確にはコンボボックスのデータは順の関係でクエリで整順させたものです。 access2000でwindows2000です。 宜しくお願いいたします。

  • Access 選択クエリーの入力制限

    Access97を使用しています。 選択クエリーを用いて単一テーブルの任意の列を表示 します。 元データは単一テーブルなので、選択クエリーに対して 新規レコードを追加すると、そのまま元のテーブルにも レコードが追加されますよね? この選択クエリーの機能を参照のみに限定し、 レコード追加・更新は制限したいのですが、これを実現 することはできるのでしょうか? データシート形式のフォームなら選択クエリーとほぼ 同じイメージで操作できるし、これならプロパティの 「追加の許可」「更新の許可」あたりを設定すれば レコード追加を抑制できると思いますが、極力選択 クエリーを使いたいんです。 よろしくお願いします。

  • Accessでのデータ更新のキャンセルと再クエリについて。

    初心者で申し訳ありません。 (1)Accessで、フォームを作り簡単なデータを管理しています。そこで、入力フォームを開き、データを追加し ているときにキャンセルをしたいと思った場合はどの ようなイベントを記述すればよろしいでしょうか。  (入力したデータを更新したくない) docmd.cancel..を記述しても、結局テーブルに追加 されてしまっているのですが・・・。 (2) ★docmd.requery "○○○"    ★Forms![フォーム名].requery ・・・上記のような再クエリの方法を目にしてるのですが、上と下の違いはあるのでしょうか?この場合はこう・・・とかあるのでしょうか? よきアドバイスお願いいたします。

  • ACCESSの絞込み操作

    説明不足になると思いますが その場合補足します、のでよろしくお願いします フォームのコンボを設け、ここに分類コードを 入れると該当データが表示されました これをサブフォームを利用するように変更しました ロジック的には このサブフォームはクエリで分類コードによって より分けています つまり、抽出条件に [forms]![フォーム名]![コンボ2] と入れています。 これは見ると、きちんとパラメータがわたされて データを選択されています さて、 サブフォームに分割しない前はコンボの プロパティで更新後の処理に DoCmd.requryを入れています サブフォームにした場合、これに変わる処理 として、何を実行していいか、教えてください

  • Access2002での複数項目検索について

    教えてください。 Access2002でデータベースを作っています。 ふたつのテーブルから選択クエリを作成、そのクエリ内で部分一致のパラメータを設定し、 複数項目(5つ)の検索を行っていましたが、検索のたびに毎回5つのダイアログボックスを クリア(必要項目を入力、入力しないパラメータは「OK」でとばす)するのがめんどくさいと 使用者にいわれ、検索フォームからの検索に変えたいと思っています。 その場合、  (1)選択クエリを基としたフォームを新規作成し、  (2)非連結のテキストボックスを5つ作り、それぞれ適当な名前を付け、  (3)クエリの抽出条件の欄の現在パラメータ設定をしているところを、       [Forms]![フォーム名]![テキストボックス名]に変える だけではできないのでしょうか。。 いろいろWeb上で調べたり、本を読んで見よう見まねでつくってみましたが、出来上がった フォームから検索ボタン(「クエリの実行」ボタン)を押しても、全件が表示されてしまうの です。 パラメータではできているのに・・・。 どなたか、ご教示くださるとうれしいです。 よろしくお願いいたします。

  • アクセス2000のフォームについて

    アクセスでまたつまずいてしまいました。ちょっと教えてください。 複数のテーブルから選択クエリを作り、それを基にオートフォームでフォームを作ったのですが、フォームでデータの入力が出来ません。クエリでもデータの入力が出来ません。 「このレコードセットは更新できません」と下のほうに出ます。 フォームのプロパティのデータの更新の許可と、データ入力用のところは“はい”になっています。 私では原因がわかりません。わかりにくい質問でしょうが、どなたかご指導お願いします。

  • Access2010 更新データのレポート表示

    Access初心者です。 新規データを入力しても、レポートが更新されずに困っています。 (テーブルや、フォーム内では、データは更新されています) エクセルデータをAccess2010にインポートして、元テーブルを作成しました。 元テーブルを元に、フォーム・レポート・検索クエリ(年度別・分類別)等を作成しました。 ここまでの作業で、新規データの入力はありませんでした。 ところが・・・ 新規データをフォームに入力すると、元テーブルは更新されますが、既に作成しているレポートには、新規レコードが表示(反映)されません。 更新されている元テーブルを元に、もう一度レポートを作成しても、新規レコードは表示されません。 ホームタブの「全て更新」ボタンをクリックしても、新規レコードはレポートには表示されません。 尚、Access初心者です。 「更新クエリ」なるものは、作成していません。というか、「更新クエリ」って何?状態です。 また、クエリそのものが良くわかっておらず、作成したクエリは全て「検索」のためのクエリで、抽出条件に「 [] 」を入力したり、フィールドに「 年度: Year(DateAdd("m",-3,[発送日])) 」を入力したりしかできません。 勿論、リレーションシップって何???状態です。 どうしたらよいのでしょうか??? どなたか、初心者でもわかるように、教えていただけないでしょうか? 宜しくお願いいたします。

  • ACCESS2007で、入力画面を消したい

    ACCESS 2007を使っています。あるデータの、フォームと、レポートの画面で、毎回、パラメータ入力を要求されます。これを消すにはどうしたら良いのでしょうか? クエリーの方でも、不要なパラメータ入力を要求されるのがあり、これはデザインビューのところで、設定をなおしたら出なくなりました。もともと、おそらくこのクエリーをもとに、フォームとレポートを作っていたのだと思われます。フォームとレポートのほう、あけるたびに入力要求されるのを消すにはどうしたらよいでしょう? 初歩的な質問ですみません。

  • access2010のレポート印刷について質問です

    選択クエリにて日付で抽出しています。 選択クエリを実行すると、パラメーターの入力画面が表示され、日付を入力すると抽出されます。 その選択クエリをそのままレポートとしてあります。 そのレポートを印刷するにあたり、現在の流れは、フォームの印刷ボタンを押す→パラメーターの入力→レポート表示→ファイルタブから印刷を選択→印刷をクリック→プリンター選択等のプロパティー画面→印刷となっていますが、この手順を、フォームの印刷ボタンを押す→パラメーターの入力→プリンター選択等のプロパティー画面→印刷としたいのですが。 分かる方、是非教えて下さい。 宜しくお願いします。

専門家に質問してみよう