Setfocus'ta tutabilmek...

1 2 3
22/12/2009, 18:19

Hayri16

Değerli arkadaşlar;
Programımda alanlarda veri olup olmadığını kontrol ediyorum. Bu kontrol sonucu eğer veri yoksa o metinkutusuna odaklanıp veri girmesini istiyorum. Ben istiyorum ama benim yazdığım kodlara göre Access bunu istemiyor. Kontrolü yapıyor, mesajı veriyor ve sonra hiçbirşey olmamışçasına devam ediyor. Ne yapmam lazım?
Kod:
Private Sub recete_denetim()
If IsNull(Metin180) Or Metin180 = "" Then 'protokol numarası boşsa
          MsgBox "REÇETENİN PROTOKOL NOSUNU GİRMEDİNİZ"
          Metin180.SetFocus
                   'Arada aşağıdaki kpoduda denedim olmadı(sonsuz döngü oldu)
                   'If Len(Metin180) < 1 Then
                   'Metin180.SetFocus
                   'End If
            ElseIf IsNull(Metin182) Or Metin182 = "" Then 'karne sayfa no boşsa
            MsgBox "REÇETE SAYFA NOSUNU GİRMEDİNİZ"
            Metin182.SetFocus
End If
End Sub
22/12/2009, 18:32

arzuu

Private Sub Komut2_Click()
Me.Metin0.SetFocus
If Metin0.Text = "" Then
MsgBox ("lütfen değer giriniz!")
End If

https://accesstr.net/konu-metinkutusu-bo...t=setfocus
22/12/2009, 18:44

Hayri16

Sayın Arzuu;
İlginize çok teşekkür ederim ama maalesef olmadı.
Kod:
Private Sub recete_denetim()
Me.Metin180.SetFocus
If IsNull(Metin180) Or Metin180 = "" Or Len(Metin180) < 1 Then 'protokol numarası boşsa
          MsgBox "REÇETENİN PROTOKOL NOSUNU GİRMEDİNİZ"
              ElseIf IsNull(Metin182) Or Metin182 = "" Then 'karne sayfa no boşsa
              MsgBox "REÇETE SAYFA NOSUNU GİRMEDİNİZ"
              Metin182.SetFocus
End If
End Sub
22/12/2009, 19:05

arzuu

22/12/2009, 19:44

Hayri16

Maalesef bu da olmadı Sayın Arzu;
"Denetimin üzerinde bir odak olmadıkça bir denetimin bir özelliğine başvuramaz veya özelliği ayarlayamazsınız" hata mesajını verdi. Şimdi program için örnek dosya hazırlıyorum. Başka soracaklarım da var. Burayaya ekleyeyim. Çok teşekkür ederim.
22/12/2009, 20:15

mehmetdemiral

Sayın Hayri
Örnekteki hangi forumdan bahsettiğinizi de yazsaydınız keşke..

Bu tür problemlerle ilgili birçok yerde hep aynı şeyleri yazıyorum ve iş görüyor. Bir metin kutusunun çıkıldığında olayına veya güncelleme sonrasına yazacağınız "burda kal" komutu iş görmez. Bu nedenle gittiği yere "geri dön" demek daha akıllıcadır. "Metin1.setfocus" olayını hep if şartına bağlarız ama o hiç bizi dinlemez. Aslında dinler de, biz ona derdimizi yanlış anlatırız. Halbuki bu işi metin1'den sonra gidilen mesela metin2'nin girildiğinde olayına yaptırsak hiç sorun olmayacaktır. Metin1'den çıkıp metin2'ye girildiğinde

If Metin1.Text = "" Then
metin1.setfocus
MsgBox ("Lütfen değer giriniz!")
End If

olsaydı o zaman çalışırdı. Deneyin bakın)
1 2 3