アクセス2000 入力の可不可を設定する方法

このQ&Aのポイント
  • 初心者の方でも分かりやすく、アクセス2000で入力の可不可を設定する方法をご紹介します。
  • オプショングループを使用して、選択した値ごとに違う処理をする方法を説明します。
  • 単票フォームと帳票フォームでの挙動の違いについても解説します。
回答を見る
  • ベストアンサー

アクセス2000 入力の結果によって入力の可不可を設定したいです

初心者で質問も上手に書けなくてもどかしいのですが、よろしくお願い致します。 以前、選択した値ごとに違う処理をしたいという質問をしたのですが、 (オプショングループを作って、3番を選択した時だけ次のフィールドに入力できるようにしたい、という内容) その時に「Enabled」という言葉を教えていただき、とても有難く感動いたしました。 しかし、単票フォームの時は上手くいくのですが、帳票フォームだと、 一つのレコードで3番を選択すると、他のレコード全部もenabled=True状態になってしまいます。 一つ一つのレコードごとに設定できる方法はありますでしょうか? 本当に分りずらい質問の仕方ですいません。 以前した質問です。 http://www.okweb.ne.jp/kotaeru.php3?q=315095 <オプショングループで選択肢を3つ作りました。選んだ値ごとに違う処理をしたいのですが。。。。 例えば、「不要品フィールド」で、(1)持ってる (2)捨てる (3)あげる の3つがあったとして、 (3)を選んだ時だけ、「あげる人フィールド」に「○○さん」と入力できるようにしたいのです。 (1)や(2)を選んだ時には「あげる人フィールド」に入力できなくしたいです。 >

  • aeee
  • お礼率80% (21/26)

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

  • ベストアンサー
  • yoisho
  • ベストアンサー率64% (331/516)
回答No.1

Enabled プロパティは、(このご質問では、あげる人フィールドの)テキストボックスに設定されることになりますので、レコードごとに違った設定にすることはできません。 ということで、ここではフォームの Currentイベントでレコードを移動した時にテキストボックスの設定を変えてやるのはいかがでしょうか? この場合、Enabledプロパティを False にしてしまうと、テキストボックスがフォーカスを取得できなくなってしまいますので、"Locked/編集ロック" プロパティを使った方が良いと思います。 具体的には、 オプショングループの値が、持ってる:1、捨てる:2、あげる:3とすると、 Private Sub Form_Current() If Me![オプショングループの名前] = 3 Then Me![あげる人フィールド].Locked = False Else Me![あげる人フィールド].Locked = True End If End Sub なお、各オプションの GotFocusイベントも、 Private Sub あげる_GotFocus() あげる人フィールド. Locked = False End Sub Private Sub 持っている_GotFocus() あげる人フィールド. Locked = True End Sub Private Sub 捨てる_GotFocus() あげる人フィールド. Locked = True End Sub と、変更してください。

aeee
質問者

お礼

本当にあんな質問文を理解して回答を下さりどうもありがとうございます。 アクセスはここ最近、0から本とにらめっこしながら一人ででやり始めました。 周囲に聞ける人もいず、本相手ではとても理解がし辛く、イライラと涙の繰り返しなのですが、 先回といい、今回といい、こちらで質問させて頂いて大変助けられ、とてもとても感謝しています。 又にっちにもさっちにも行かなくなったらこちらに質問させて頂くかと思いますが、どうぞよろしくお願い致します。 本当にどうもありがとうございました。

関連するQ&A

  • 単票フォームと帳票フォームを連動 アクセス

    どういう構成にすればいいか教えてください。 元データはT_testのみですが T_testを元に、単票フォームと帳票フォームを作り、 この二つのフォームをサブフォームにし、1つの親フォームにはめて、 帳票フォームのレコードをクリックする(カレントレコードが変わる)度に 単票フォームは、帳票フォームのデータを表示させたいのですが どうすればいいでしょう? レコードソースは親フォームに設定すればいいのでしょうか? それとも単票フォームと帳票フォームそれぞれにT_testを設定すればいいでしょうか? 帳票フォームのレコードをクリックして単票フォームのデータを表示させる際は、 帳票フォームの値を取得して単票フォームにフィルタをかければいいのでしょうか?

  • Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい

    Accessのフォームで、複数の条件が一致した時の書式を設定したいのですが、どうすればいいのでしょうか? 例えば、 [都道府県]フィールドが『東京都』の時、そのレコードの全フィールドの背景を水色にし、 [数量]フィールド、[金額]フィールドがマイナスの時、そのフィールドの値を赤字にしたいのです。 フォームで、全てのフィールドを選択してから、メニューの条件付き書式設定で、 『条件1(1)』に、「式」 「[都道府県]="東京都"」 と入力し、背景を水色に設定し、[OK] しました。 次に、[数量]フィールドと[金額]フィールドだけを選択し、メニューの条件付き書式設定で、 [追加]ボタンを押して、『条件2(2)』に、「フィールドの値」 「次の値より小さい」 「0」 と入力し、 フォントを赤色に設定し、[OK] をクリックしました。 ですが、実行すると、『東京都でマイナス』の時、『背景が水色で値が赤字』 という具合になりませんでした。。 単票フォームでも帳票フォームでもどちらでも結果は同じでした。 どうすればできるのでしょうか?それとも、こういうことはできないのでしょうか?? [都道府県] | [担当者] | [数量] | [金額]   → なって欲しい結果  東京都 | あああ | 5 | 500   → このレコードの背景が水色になる  千葉県 | いいい | -5 | -500   → -5 と -500 が赤字になる  東京都 | ううう | -1 | -100   → このレコードの背景が水色になり、更に-1と-100が赤字になる。 このようにしたいのですが、どうしたらよろしいのでしょうか? よろしくお願いします。

  • アクセス初心者です(2000使用)。オプショングループ

    オプショングループで選択肢を3つ作りました。選んだ値ごとに違う処理をしたいのですが。。。。 例えば、「不要品フィールド」で、(1)持ってる (2)捨てる (3)あげる の3つがあったとして、 (3)を選んだ時だけ、「あげる人フィールド」に「○○さん」と入力できるようにしたいのです。 (1)や(2)を選んだ時には「あげる人フィールド」に入力できなくしたいです。 変な文章ですいませんが切羽詰ってます。どなたかお助けを~。

  • アクセスのテーブルのレコードをひとつのフォームにすべて表示ししたい

    アクセス2002を使っています。 ひとつのテーブルに登録しているレコードの値(日付順のフィールドにより数値を入力たレコードです)をひとつの単票形式のフォームにすべて表示するようにしたいのですが、できますか? よろしくお願いします。

  • アクセスで指定したレコードをフォームで開く方法?

    アクセスで、帳票形式のフォームで選択したレコードの内容を、詳細を表示する用のフォーム(単票形式)で開きたいのですが、どうしたらよいのでしょうか?(初心者です) 例えば、帳票形式のフォームで「予約番号:1」のレコード 選択した状態で、ボタンをクリックすると、 詳細を表示する用の単票形式のフォームの「予約番号:1」のレコードが表示されるようにしたいのです。 マクロでは出来なそうなので、VBAで・・・というところまでしか検討がつきません。 使用しているのはアクセス2002です。 どなたかご存知の方がいらっしゃいましたら、教えてください。よろしくお願いします。

  • アクセス2003でIDフィールドのデータをオート入力(規定値)したいのですが

    こんにちは。 教えてください。 オートナンバー型を利用せずに単票フォームからNOフィールドのデータを入力したいのです。  ↓こんな考え方で レコード新規作成時 : NO 規定値 総レコード件数+1 です。 オートナンバー型を利用するとたとえばNO10を後での削除をすると その10は欠番になり利用不可ですよね。 そこらへんは柔軟に必要があればいつでも欠番になっている10という値をNOフィールドに手入力で再利用したいのです。 いろいろ調べてみたのですがいい感じな方法が見つけられませんでした。 お願いします!!

  • アクセス2007 コマンドボタン ウイザード

    2007を使い始めたところですが、教えてください。単票フォーム(A)のデザインで、コマンドボタンを貼り付けて、別単票フォーム(B)を「フォームを開く」のをウィザードを利用して行おうとしています。その中で、「特定のレコードを表示する」を選択した場合、フォーム(B)のフィールドだけ表示されて、フォーム(A)のフィールドが表示されません。2002では、両方表示されて、「<ー>」ボタンを押せば、うまく目的のレコードの単票フォームが表示されていたのですが、どうなっているのでしょうか?・・・・・・フォーム(A)のフィールドが表示されません。・・・・・・よろしくおねがいします。

  • ACCESSのサブフォーム

    ACCESSのサブフォームで、レコード表示について教えてください。 添付のサブフォームの一番左のコンボボックスに値を入力もしくは選択すると、未入力のレコードが下に1行分増えます。 (その他項目は連動して表示されます) サブフォームは帳票フォームを選択しているのですが、一般的には帳票フォームを選択した場合、レコードの数分だけ表示されると思うのですが、これは1レコードづつ増えていきます。 このサブフォームを作った人がもういないので、どうやって作ったのかが分かりません。 どなたか分かる人がいれば教えて頂けますでしょうか。 必要な情報があれば、調べて回答します。

  • ACCESS2000の帳票フォームでテキストボックスの入力値を取得したい

    こんにちは。ACCESS2000でツールを作成しています。 テーブルはExcelにリンクさせ、クエリを介して帳票フォームで データを表示しています。 帳票フォームのレコード毎にテキストボックスを追加して それぞれ入力できるようにし、その値をVBAで取得したいのですが どうすればよいでしょうか。 テキストボックスを追加して実行すると、一つのテキストボックスに 入力した値が全てのレコードに反映されているようです。 帳票フォームのしくみがよく分かりません。 どなたか教えていただけないでしょうか。 宜しくお願いします。

  • アクセスで単票でリスト内もフィルタかけたい

    2002アクセスを使っている初心者です。社員名簿を作っています。テーブル社員名簿.TBL、フィールド「氏名」・・・その他について、単票フォームを作成しました。ツールボックスより、リストコントロールを選択して、貼り付けると、リストボックスウイザードが立ち上がり、その中の3つのメニューの3番目の「リストボックスで選択した値に対応するレコードをフォームで検索する」を選択して、フィールド「氏名」を元に検索してその氏名のレコードの情報をを表示するようにしました。社員全データでは、調子良く動いています。この度、「課」別に表示しようとしています。メニューバーの中のフィルタ(漏斗の絵)を使って、選択フィルタで目標の「課」選択して、実行フィルタを押すと、単票フォームのレコード数は変化して、うまくフィルタしますが、リスト内の「氏名」データがフィルタされません。どうしたらクリックと同時にリスト内のフィールド「氏名」もフィルタされるのですか?宜しくお願いします。

専門家に質問してみよう