VBA'da sıfır (0) hata kodu ne anlama geliyor?

1 2
27/09/2011, 21:34

WiniFred

Merhaba arkadaşlar,
Access 2007'de bir proje hazırlıyorum. Bir butonun altına gerekli kodları yazdım. hata durumunda çökmemesi için de kodun başına:

On Error GoTo hata

sonuna da:

hata:
MsgBox "HATA OLUŞTU!-" & Err.Number & "-" & Err.Description, vbCritical

satırlarını ekledim. Ama kod hiç sıkıntısız görevini yerine getirdiği halde

HATA OLUŞTU!-0

mesajı veriyor. Bu sıfır (0) kodlu hatanın anlamı bilgi verebilirseniz çok sevinirim. Kodun tamamı da şöyle:

Private Sub btnOnayla_Click()
Dim Yil As Integer, Ay As Byte

On Error GoTo hata

Yil = Mid(IkrazOdemeTarihi, 7, 4)
Ay = Mid(IkrazOdemeTarihi, 4, 2)

If YonetimKuruluKararTarihi = "" Or YonetimKuruluKararNo = "" Or IkrazOdemeTarihi = "" Then
MsgBox ("Tönetim Kurulu Kara Tarihi, Yönetim Kurulu Karar No ve İkraz ödeme Tarihi alanları boş bırakılamaz")
Exit Sub
End If

CurrentDb.Execute ("INSERT INTO IkrazHareket(Sicil,Yil,Ay,Vade,OdemeTuru,Izahat,Borc,Alacak,Bakiye) VALUES(" & Forms![GenelForm]![Sicil] & "," & Yil & "," & Ay & "," & Vade & "," & OdemeTuruID & "," & 2 & ",'" & TalepEdilenIkraz & "','" & EskiIkrazBorcu & "','" & TalepEdilenIkraz & "');")

MsgBox "İkraz kaydı İkraz Hareket tablosuna başarıyla eklendi."

hata:
MsgBox "HATA OLUŞTU!-" & Err.Number & "-" & Err.Description, vbCritical

End Sub

NOT: forumda arama yaptım ama bununla ilgili bir başlık göremedim. hatam varsa affola..
27/09/2011, 21:47

ayhan2122

Mümkünse örneğinizi 2003 olarak ekleyin. Daha çok kişi bakabilir.

28/09/2011, 00:05

alpeki99

DAO ile alakalı bir yerde hata yapıyor olabilirsiniz. Örnek dosyanızı eklerseniz daha iyi olur.
28/09/2011, 08:22

chopper07

0 (sıfır) hatası bazen admin yetkisi olmayan kullanıcılar ile işlem yapmak istediğinizde de verebilir.
28/09/2011, 11:12

WiniFred

şu an işyerindeyim. eve gittiğimde dosyayı eklerim. yalnız iki şey belirteyim bu arada.

hata ile ilgili satırları kapattığımda kod hiç problemsiz çalışıyor. Yani hata vermiyor, görevini olması gerektiği gibi yerine getiriyor. sadece hata ile ilgili yukarıda belirttiğim satırları eklediğimde hata veriyor.

Bir de epey bir süre önce yine access'te hazırladığım bir dosya buldum (silindiğini sanıyordum). onda da aynı satırları eklediğim bir kod var. hata etikenin olduğu kısmı:

hata:
if Err.Number<>0then
MsgBox "HATA OLUŞTU!-" & Err.Number & "-" & Err.Description, vbCritical
end if
şeklinde yazmışım.
Yani sanki sıfır kodu hata olduğu anlamına gelmiyor gibi. Sanki veritabanına gönderilen Sql hatasız tamamlanırsa sıfır kodu döndürüyormuş gibi birşeyler var ama tam anlamadım bir türlü.
28/09/2011, 11:46

Seruz

Kod çalışırken, Normal kod kısımları bittikten sonra, kodlar sırayla işlemeye devam ettiği için hata kısmına da girip çalışmaya devam ediyor. 0 nolu hata kodu aslında hata yok anlamına geliyor.

hata:
yazısından önce araya exit sub koymanız gerekiyor. onu atlamışsınız.


Private Sub btnOnayla_Click()
Dim Yil As Integer, Ay As Byte

On Error GoTo hata

Yil = Mid(IkrazOdemeTarihi, 7, 4)
Ay = Mid(IkrazOdemeTarihi, 4, 2)

If YonetimKuruluKararTarihi = "" Or YonetimKuruluKararNo = "" Or IkrazOdemeTarihi = "" Then
MsgBox ("Tönetim Kurulu Kara Tarihi, Yönetim Kurulu Karar No ve İkraz ödeme Tarihi alanları boş bırakılamaz")
Exit Sub
End If

CurrentDb.Execute ("INSERT INTO IkrazHareket(Sicil,Yil,Ay,Vade,OdemeTuru,Izahat,Borc,Alacak,Bakiye) VALUES(" & Forms![GenelForm]![Sicil] & "," & Yil & "," & Ay & "," & Vade & "," & OdemeTuruID & "," & 2 & ",'" & TalepEdilenIkraz & "','" & EskiIkrazBorcu & "','" & TalepEdilenIkraz & "');")

MsgBox "İkraz kaydı İkraz Hareket tablosuna başarıyla eklendi."

exit sub
hata:
MsgBox "HATA OLUŞTU!-" & Err.Number & "-" & Err.Description, vbCritical

End Sub


Programcılıkta, bazen gözünüzün önündeki şeyi göremezsiniz.
1 2