Formda metin kutusu eklensin, ama silinmesin, değiştirilmesin.

19/01/2014, 14:02

abahceci

Arkadaşlar merhaba,
Bir formda var olan metin kutularındaki verilerin form kapandıktan sonra tekrar o form açıldığında o verinin değiştirilmesini, silinmesini istemiyorum. Ancak aynı kayıt içinde başka bir metin kutusuna (boş ise) veri girilebilsin istiyorum. Bunu yetkilendirme ile sağlamaya çalıştım. Ama bir türlü yapamadım. Ekteki dosyada yetkilendirme yok. Başka türlü nasıl yapabilirim?
Şimdiden çok teşekkür ederim...
19/01/2014, 15:21

serdar_20

Merhabalar;
Silinmesini istemediğiniz metin kutularının odaklandığında olayını aşağıdaki gibi yaparsanız sanırım istediğiniz olur.
Private Sub Metin20_GotFocus()
If IsNull(Me.Metin20) Then
Me.Metin20.Locked = False
Else
Me.Metin20.Locked = True
End If
End Sub
19/01/2014, 15:55

abahceci

Sayın serdar_20 hocam, cevabınız için çok teşekkür ederim. Yazdığınız kodu denedim ve istediğim gibi oldu. Ancak ne var ki; bu özelliği kullanmayı düşündüğüm birkaç formum ve her bir formda da birçok metin kutum var. Bu durumda her formdaki her bir metin kutusu için ayrı ayrı mı bu kodu yazmalıyım? Yoksa daha pratik bir yolu var mı?
İlginizden dolayı tekrar teşekkür ederim...
19/01/2014, 16:30

Taruz

Merhaba..

Sayın serdar_20'in önerisine ilaveten;

Bunu en kısayolu döngü ile tüm kontrolleri kontrol ettirmek olur..

Forumunuzun Geçerli Olduğunda kod bölümüne alttaki prosedürü uygularsanız (yeni kayıt değilse) veri girilmiş tüm metin kutuları ve açılan kutular kilitlenecektir..:

Dim trz As Control
For Each trz In Me.Controls
Select Case trz.ControlType
Case acTextBox, acComboBox
If IsNull(trz.Value) = 0 Then trz.Locked = -1 Else trz.Locked = 0
End Select
Next
19/01/2014, 18:23

abahceci

Taruz hocam, ellerinize sağlık. İstediğim gibi oldu.
Yalnız bir konuda daha yardımınızı isteyeceğim:
Herhangi bir denetim, başkası tarafından yanlış girilmişse ve ben onu düzeltmek istersem, tek bir butona tıklayarak bu özelliği devre dışı bırakabilir miyim?
Tabi form kapatılıp tekrar açıldıktan sonra yine eskisi gibi çalışmaya devam edecek şekilde...
Yardımınız için çok teşekkür ederim...

(Bu arada komutta If IsNull(trz.Value) = 0 önce hata verdi.
Sonra trz yerine herhangi bir denetim adı yazdıktan sonra düzeldi)