• ベストアンサー

ACCESSのフォームの質問です。

ACCESSのフォームの質問です。 あるフォーム上のコンボボックスで OK と選択したときに  「結果」というテキストボックスで 完了 NG と選択した時に 「結果」というテキストボックスで 未完了 と自動反映させたいのですが、この場合コントロールソースにどのように式をいれれば良いでしょうか?

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

フォームをデザインビューで開き、 コンボボックスの上で右クリックして、 プロパティを選択します。 すると、コンボボックスのプロパティシート が表示されます。 シートの下の方に更新後処理という項目が あります。その右端の欄外のところをクリック するとビルダの選択というフォームが表示 されます。その中のコードビルダを選択して OKをクリックするとフォームのコード表が 表示され、 Private Sub コンボ1_AfterUpdate() End Sub のようなコードが表示されます。 そこで、#1で示した、 Private Sub コンボ1_AfterUpdate() If Me!コンボ1.Value = "OK" Then Me!結果 = "完了" End If If Me!コンボ1.Value = "NG" Then Me!結果 = "未完了" End If If Me!コンボ1.Value = "Reset" Then Me!結果 = "" End If End Sub の中の、 If Me!コンボ1.Value = "OK" Then Me!結果 = "完了" End If If Me!コンボ1.Value = "NG" Then Me!結果 = "未完了" End If If Me!コンボ1.Value = "Reset" Then Me!結果 = "" End If を Private Sub コンボ1_AfterUpdate() End Sub の中に貼り付けてください。このとき、 コンボ1というのは仮につけた名前なので Private Sub コンボ1_AfterUpdate() のところに表示されているコンボ1と 同じ名前に、すべて統一してください。 書き終わったらAccessの左上にある黒い 上書き保存のボタンをクリックして 保存し、コード表を閉じます。 全てを保存して閉じ、フォームを 開いて確認してみてください。

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

コンボボックス、テキストボックスはともに 非連結のコントロールとしています。 コンボボックスのプロパティで、 値集合ソース:値リスト 値集合ソース:"OK";"NG";"Reset" とし、コンボボックスの更新後処理で、 Private Sub コンボ1_AfterUpdate() If Me!コンボ1.Value = "OK" Then Me!結果 = "完了" End If If Me!コンボ1.Value = "NG" Then Me!結果 = "未完了" End If If Me!コンボ1.Value = "Reset" Then Me!結果 = "" End If End Sub とします。 なお、値集合ソースで "Reset" を入れているのは テキストボックスを空にするためで、必要がなければ 値集合ソースを "OK";"NG" だけにし、 更新後処理の If Me!コンボ1.Value = "Reset" Then Me!結果 = "" End If のところをコメントアウトするか、削除して ください。 なお、コンボ名は実際のコンボ名に変更してください。

noname#123141
質問者

お礼

ご回答ありがとうございます。 申し訳ありません。 Private Sub コンボ1_AfterUpdate() If Me!コンボ1.Value = "OK" Then Me!結果 = "完了" End If If Me!コンボ1.Value = "NG" Then Me!結果 = "未完了" End If If Me!コンボ1.Value = "Reset" Then Me!結果 = "" End If End Sub というのはどこに入力すればよろしいのでしょうか? 値集合ソース:"OK";"NG";"Reset" をいれたほうのコンボボックスのどこかでしょうか?