Benim daha farklı bir önerim var. Bu hem de öğretmek açısından ve zekanın çok yönlü kullanımı konusunda da bir örnektir.
Tüm metin kutularının bir im (tag) özelliği vardır. Buna özellikler penceresinde "tümü" veya "diğer"sekmesinin en altından ulaşabilirsiniz. Bu im değerini sadece fiyat* olan kutularda kullanın. Bu metin kutularının tümünün im değeri 1 olsun. Diğer açılan kutu ve metin kutularına dokunmayın.
Şimdi bir alt yordam yazalım:
Kod:
Sub sifirla()
On Error Resume Next
For Each fıyat In Me
With fıyat
If .Tag = 1 Then .Value = 0
End With
Next
End Sub
Böylece sadece im değeri 1 olan metin kutuları "0" olacaktır. Şimdi bu kodu mesela seçenek44'ün güncelleme sonrasında olayına (case select komutlarının en üstüne) ekleyelim. Bunun için sadece
sifirla
yazacağız. Çalıştırın ve seçenekten intel veya amd seçin. Tüm "fiyat" diye başlayan ve im değerleri "1" olan kutular "0" değerini alacaktır.
Diğer iki arkadaş da çözüme ulaşmış ama kabul edin ki yüzlerce metin kutusunu sıfırlamak gerektiğinde benim önerim daha kullanışlı olacak. Bu durumda şöyle yapmalıyız:,
Kod:
Sub sifirla()
On Error Resume Next
For Each fıyat In Me
With fıyat
If .Tag <>1 Then .Value = 0
End With
Next
End Sub
Sanırım anladık. Tek tek bütün kutuların im değerlerini 1 yapmak yerine, boş bırakmak ve diğerlerini 1 yapmak daha kolaydır. Ancak bu örnek için tüm açılan kutuları ve toplam değerlerin olduğu alanları sayarsak fıyat* alanları daha az sayıdadır. Bu nedenle onların im değerlerini 1 yaptım.
İnadına, ille de Accesstr.net...