こんにちは。
ACCESS2003で商品管理を作成しています。
入力用フォームに、5つのチェックボックスがあり、それぞれにテキストボックスが横に配置されています。
商品別にチェックボックスにチェックを入れ、テキストボックスにその商品の詳細を入力しています。
概要は、
【型式】
【商品(1)】(チェックボックス)
・・・・・【商品(1)詳細】(テキストボックス)
【商品(2)】(チェックボックス)
・・・・・【商品(2)詳細】(テキストボックス)
【商品(3)】(チェックボックス)
・・・・・【商品(1)詳細】(テキストボックス)
【商品(4)】(チェックボックス)
・・・・・【商品(4)詳細】(テキストボックス)
【商品(5)】(チェックボックス)
・・・・・【商品(5)詳細】(テキストボックス)
入力ミスをなくすために、5個のチェックボックスのうち1箇所にチェックを入れると、チェックを入れた箇所の横のテキストボックス以外のテキストボックスを参照専用(入力不可)にしたいのですが、どうすればいいでしょうか?
よろしくお願い致します。
No.4ベストアンサー
- 回答日時:
Private Sub Form_Open(Cancel As Integer)
商品_1_ = False
商品_2_ = False
商品_3_ = False
商品_4_ = False
商品_5_ = False
商品_1_詳細.Enabled = 商品_1_
商品_2_詳細.Enabled = 商品_2_
商品_3_詳細.Enabled = 商品_3_
商品_4_詳細.Enabled = 商品_4_
商品_5_詳細.Enabled = 商品_5_
End Sub
Private Sub 商品_1__AfterUpdate()
商品_2_ = False
商品_3_ = False
商品_4_ = False
商品_5_ = False
商品_1_詳細.Enabled = 商品_1_
商品_2_詳細.Enabled = 商品_2_
商品_3_詳細.Enabled = 商品_3_
商品_4_詳細.Enabled = 商品_4_
商品_5_詳細.Enabled = 商品_5_
End Sub
Private Sub 商品_2__AfterUpdate()
商品_1_ = False
商品_3_ = False
商品_4_ = False
商品_5_ = False
商品_1_詳細.Enabled = 商品_1_
商品_2_詳細.Enabled = 商品_2_
商品_3_詳細.Enabled = 商品_3_
商品_4_詳細.Enabled = 商品_4_
商品_5_詳細.Enabled = 商品_5_
End Sub
Private Sub 商品_3__AfterUpdate()
商品_1_ = False
商品_2_ = False
商品_4_ = False
商品_5_ = False
商品_1_詳細.Enabled = 商品_1_
商品_2_詳細.Enabled = 商品_2_
商品_3_詳細.Enabled = 商品_3_
商品_4_詳細.Enabled = 商品_4_
商品_5_詳細.Enabled = 商品_5_
End Sub
Private Sub 商品_4__AfterUpdate()
商品_1_ = False
商品_2_ = False
商品_3_ = False
商品_5_ = False
商品_1_詳細.Enabled = 商品_1_
商品_2_詳細.Enabled = 商品_2_
商品_3_詳細.Enabled = 商品_3_
商品_4_詳細.Enabled = 商品_4_
商品_5_詳細.Enabled = 商品_5_
End Sub
Private Sub 商品_5__AfterUpdate()
商品_1_ = False
商品_2_ = False
商品_3_ = False
商品_4_ = False
商品_1_詳細.Enabled = 商品_1_
商品_2_詳細.Enabled = 商品_2_
商品_3_詳細.Enabled = 商品_3_
商品_4_詳細.Enabled = 商品_4_
商品_5_詳細.Enabled = 商品_5_
End Sub
コントロール(テキストボックスやチェックボックスなどの事)の名前に「(」や「)」を含む場合、コード上では「(」と「)」を「_」に変える必要があります。
商品(1)
↓
商品_1_
商品(1)詳細
↓
商品_1_詳細
<注>
「(」と「)」は、コード上では関数や配列など、特別な意味を持つ特殊記号なので、このような書き換えが必要です。
なお、この例では、入力できないのをより明確にする為に、LockedプロパティではなくEnabledプロパティを操作しています。
操作するのをLockedプロパティにしたい場合は
商品_1_詳細.Enabled = 商品_1_
を
商品_1_詳細.Locked = Not 商品_1_
に変更します。
<注>
Lockedプロパティは「はい/いいえ」がEnabledプロパティの逆なので、Not演算子を使用して「はい(-1)」「いいえ(0)」を逆にします。
No.3
- 回答日時:
1、チェックボックスをフレームコントロール(商品入力番号)を利用して配置します。
・フレームは非表示にします。
・規定値=1。
2、テキストボックスの名称を工夫します。
商品明細_1
商品明細_2
・・・・・
商品明細_5
こういう仕掛けですと、
Private Sub 商品入力番号_AfterUpdate()
Dim I As Integer
Dim N As Integer
N = Me.商品入力番号
For I = 1 To 5
Me.Controls("商品詳細_" & I).Enabled = CBool(I = N)
Next I
End Sub
No.2
- 回答日時:
各チェックボックスの更新後イベントで下記のように横のテキストは入力可、他のチェックボックスは元に戻す設定ですね。
Private Sub 商品(1)_AfterUpdate()
商品(1)詳細.Locked = False
商品(2)詳細.Locked = True : 商品(2) = False
商品(3)詳細.Locked = True : 商品(3) = False
商品(4)詳細.Locked = True : 商品(4) = False
商品(5)詳細.Locked = True : 商品(5) = False
End Sub
※すべてのチェックボックスをFalseにして、すべてのテキストボックスを入力可にする解除にするようなボタンかイベントが必要ではないですか?
ご回答ありがとうございます。
返事が遅れて申し訳ありません。
とりあえず商品(1)のチェックボックスにて「更新後処理」に下記のように書いてみました。
Private Sub 区分_AfterUpdate()
If Me.区分 = True Then
Me.商品(1).Locked = True
else
Me.商品(1).Locked = False
End Sub
保存してチェックをするとエラーが出てしまいます。
命令文が間違っているのでしょうか?
No.1
- 回答日時:
チェックボックスの「更新後処理」にコードプロシージャを設定し、テキストボックスの「編集ロック」を「はい」にするようにVBを組んで下さい。
ご回答ありがとうございます。
返事が遅れて申し訳ありません。
とりあえず商品(1)のチェックボックスにて「更新後処理」に下記のように書いてみました。
Private Sub 区分_AfterUpdate()
If Me.区分 = True Then
Me.商品(1).Locked = True
else
Me.商品(1).Locked = False
End Sub
保存してチェックをするとエラーが出てしまいます。
命令文が間違っているのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- ヤフオク! ヤフオク 2 2023/01/27 11:36
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
- 会社・職場 輸出について 2 2023/02/02 00:17
- Amazon アマゾン 7 2022/06/11 11:03
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Amazon ヤフーショッピング 使い方 1 2023/05/20 18:53
- DIY・エクステリア SANEI トイレ部品 ロータンク密結パッキン がの我がトイレとの互換性を教えてください。 3 2023/07/16 06:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
"スレスレ" "ギリギリ" を丁寧...
-
統計:アンケート結果の読み解...
-
「新商品」と「リニューアル商...
-
スリムドカンなどまるかん製品...
-
「売れ筋」に対して???
-
エクセルを使って、商品管理を...
-
信用取引は3倍までできるらしい...
-
訪問販売の化粧品の販売員について
-
株式会社エリナの取扱商品につ...
-
excel VBAで、置換した結果を別...
-
皆さんなら現品限り(展示品)の...
-
アディダスはなぜ、デサントと...
-
職場でブランド物を自慢してく...
-
【LAWSON】ローソンがユニクロ...
-
新聞屋の集金集め
-
地方から東京に進出して上手く...
-
ステンレスの単価を教えてください
-
金融機関の商圏
-
一物二価っていけないいんですか。
-
「リピーター」の逆は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
"スレスレ" "ギリギリ" を丁寧...
-
「新商品」と「リニューアル商...
-
スギ薬局でクロックス風のが売...
-
シュガーレディーの無料試食会...
-
excel VBAで、置換した結果を別...
-
皆さんなら現品限り(展示品)の...
-
セブンイレブン無料引換券の対...
-
エクセルを使って、商品管理を...
-
Safariでビジターアンケート参...
-
スリムドカンなどまるかん製品...
-
統計:アンケート結果の読み解...
-
「売れ筋」に対して???
-
岩田のエアブラシCM-CP2とCM-CP...
-
エクセルで交換予定時間、納品...
-
ACアダプターが売り切れていま...
-
DTIセキュリティサービスについ...
-
USB4 Version 1.0の最大伝送距...
-
ニュースタイルについて
-
父は儲ける気が無いです
-
持ち運びできるクーラー探して...
おすすめ情報