ESC Butonu Hakkında

1 2
14/06/2016, 14:26

notrino

Merhaba Celoyce,
Evet dediğinizi tekrar denedim, dediğiniz doğru. Ancak şu an başka bir problem var. Öncelikle formdaki sayı alanına 6 dan küçük ya da büyük bir sayı girip "ESC ile Çık" butonuna bastığımda beklediğimiz şekilde hata veriyor. Ama sayı alanına 6 dan küçük ya da büyük bir sayı girildiğinde klavyedeki ESC butonuna basarsanız yazılanların hepsini geri alıyor. Ama sizin verdiğiniz kod dizilimi geri alma işlemi yapmıyor.

İstediğim şudur;

-Sayı alanına 6 dan küçük, 6 ya eşit ya da 6 dan büyük bir sayıda veri girdiğimde ve "ESC ile Çık" butonuna bastığımda girilenler geri alınmalı (Aynen klavyedeki ESC butonuna bastığımda oluşan durum gibi) ve formdan çıkılmalıdır. Eğer girilen veriyi geri almadan kayıt işlemi yapacaksam, 6 adet veri girişi zorunlu olmalıdır. (ne az ne de fazla)
14/06/2016, 15:22

notrino

Tekrar merhaba,

Form üzerinde biri çıkış biri kayıt olmak üzere iki buton yaratıp aşağıdaki kodları yazdığımda problem çözüldü. Tekrar teşekkürler..

Private Sub Komut14_Click()
If Len([sayı]) = 6 Then
DoCmd.Save
Else
Me.sayı = ""
End If
End Sub

Private Sub Komut9_Click()
If Len([sayı]) <= 6 Or Len([sayı]) >= 6 Then
Me.sayı = ""
DoCmd.Close
Else
DoCmd.Close
End If
End Sub
14/06/2016, 16:58

atoz112

sayın notrino,

8.mesajda yazdığınız kodlara dair hem bir düzeltmede bulunmak hem de bilgilendirme olması adına,naçizane aşağıdaki açıklamaların yapılması uygun görülmüştür.

1)

Komut14 adlı buton içeriği ile,eğer sayı değeri uzunluğu 6 ise kaydetsin değilse boş bıraksın anlamında kullanmışsınız.

akabinde,Komut9 adlı buton içeriği ile de;eğer sayı değeri uzunluğu küçük ve EŞİT ya da büyük ve EŞİT ise sayı değerini boş bıraksın ve formu kapatsın değilse yine kapatsın anlamında kullanmışsınız.

burada şu hususlar söz konusu olmakta:

a) ilk buton içeriğinde 6 değerine EŞİTLİK varsa geçerli olmakta.

b) fakat,diğer butonda da,EŞİTLİK durumu yine geçerli olmakta.dolayısı ile de,bu butonun işlevi düşmekte.KÜÇÜK ya da BÜYÜK olma durumları EŞİT ifadesi olmaksızın yazılmalı ki,bu kod işlerlik kazansın.

bu buton ile,eşitlik olsa da olmasa da kapatmak üzerine.

2)

iki buton şeklinde ayrı ayrı bu şekilde yazmak yerine,tek bir buton içerisinde (madem,buton olayı ile çözmek istiyorsunuz);

Kod:
If Len(Me.isim) = 6 Then
DoCmd.Save
Else
Me.isim = ""
DoCmd.Close
End If

yukarıdaki kodları buton olayında kullanabilirsiniz.ya da,alternatif olması adına


Kod:
Me.sayi = IIf(Len(Me.sayi) = 6, Me.sayi, "")

If Me.sayi = "" Then
Me.sayi = ""
DoCmd.Close
Else
DoCmd.Save
End If

bu şekilde de kullanabilirsiniz.bu kodlar ile,eğer sayı değeri uzunluğu istenen eşitliğe uygunsa kaydedecektir değilse boş bırakıp formu kapatacaktır.

ayrıca,isterseniz;kaydetme sonrasına formu kapatma kod satırını da ekleyebilirsiniz.

bilginize...iyi çalışmalar,saygılar.
14/06/2016, 19:38

notrino

Anladım Sayın Atoz,

Teşekkürler..
1 2