• ベストアンサー

【Access2010】 更新以外不可

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

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答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
  • ベストアンサー率66% (1719/2589)
回答No.2

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

KO1014
質問者

お礼

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

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

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

KO1014
質問者

お礼

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

関連するQ&A