• ベストアンサー

accessのフォームのチェックボックスを動くようにしたいです。

accessのフォームのチェックボックスを動くようにしたいです。 あるフォームは起動時、更新の許可を「いいえ」に設定しています。フォームの値をいじらせないようにしているためです。 編集可能釦をおしたときに、この更新許可を「はい」にしています。 起動時(起動後)に、あるチェックボックスだけ、動作するようにしたいのですが、なにか簡単な方法はありますでしょうか? チェックボックスが無理でしたら、他の操作ボックスでもよいです(西暦・和暦を指定しているだけのチェックボックスです) p.s. フォームには、テキストや、コンボなど沢山あるため、できれば更新「いいえ」はそのままにしたいです。

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

  • ベストアンサー
  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.3

お節介な上にコードが間違っているという・・・m(_ _)m Sub subContorolLock()  Dim objForm As Object  Dim cnt As Control  Set objForm = Me  For Each cnt In objForm.Controls   If cnt.Name = "チェックボックス1" Then    cnt.Locked = False   Else    cnt.Locked = True   End If  Next End Sub ロック/非ロックが反対でした・・ 失礼いたしました。

ownmart
質問者

お礼

ありがとうございます。 上記方法で検討したいと思います。 助かりました。

その他の回答 (2)

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.2

#1です。 面倒とのことですが、どういった処理を行う予定でしょう? 例えば、単に特定のチェックボックスのみを非ロックにして、その他をロックしたい場合は、 Sub subContorolLock()  Dim objForm As Object  Dim cnt As Control  Set objForm = Me  For Each cnt In objForm.Controls   If cnt.Name = "チェックボックス1" Then    cnt.Locked = True   Else    cnt.Locked = False   End If  Next End Sub のようにループさせてやっても出来ます。 お節介失礼いたしました^^;

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.1

フォーム単位での更新不許可なので、コントロール単位での更新許可/不許可を変更したい場合は、コントロール単位で制御をする必要があります。 ですので、追伸部分に反しますが、将来の汎用性から考慮しても、コントロール制御用のファンクションを用意して、コントロール単位での制御に変更することをお勧めします。 ロックをする場合は Me!コントロール名.Locked = True もしくは Me!コントロール名.Enabled = False で使用不可にすることで対処できます。

ownmart
質問者

お礼

ありがとうございます。 やはり、フォームの設定なので、更新は許可にしなければいけないのですね。 一つ操作を加えたいだけで、全部ロックにするのは、ちょっと面倒ですががんばります。 ありがとうございます。