Boş veri uyarısı

Katılım
9 Kasım 2007
Mesajlar
51
Excel Vers. ve Dili
OFİS 2003 TR
Selam Üstadlar;
Aşağıdaki kod ile kayıt işlemi öncesi mevcut form üzerinde bulunan "birleştirme1 altformu" isimli formdaki "günt" (Sorgu sonucu bulunan değerlerin toplam kutusu ) isimli Metin kutusuna baş vuruyor. orda yazılı değer 1 veya daha büyükse kod çalışıyor ancak orda herhangi bir değer yok ise yani sorgu sonucunda herhangi bir veri bulunanamışsa kod hata veriyor. "günt" isimli metin kutusunu başka bir metin kutusuna bağladığım zaman orda da değer olmaması durumunda "*Hata" yazıyor bu defa değer verilen 6 veya daha büyükmüş gibi çalışıyor.
Acaba If bölümüne nasıl bir kod yazılması gerekiyor yardımcı olabilirmisiniz.

Teşekkürler.. İyi Çalışmalar..... !
Kod:
Private Sub KAYDET_Click()
Me.src1süre.Requery
Dim uyari1 As Integer
If [Form_birleştirme1 alt formu].günt.Value >= 6 Then
uyari1 = MsgBox("Bu Durumda Kayıt işlemi yapmanız önerilmez" + vbCrLf + "Kayda işlemini iptal etmek  için EVET i, devam etmek için HAYIR' ı tıklayın", vbYesNo, "USÜLSÜZ KAYIT İŞLEMİ UYARISI")
If uyari1 = vbYes Then
Me.Undo
Else

On Error GoTo Err_KAYDET_Click
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Exit_KAYDET_Click:

    Exit Sub

Err_KAYDET_Click:
    MsgBox Err.Description
        Resume Exit_KAYDET_Click
End If
End If
End Sub
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Kod:
If isnull([Form_birleştirme1 alt formu].günt.Value) then
exit sub
else
[Form_birleştirme1 alt formu].günt.Value>= 6 Then
......
end if
Ya da

Sorgudan "günt" alanı için "nz" fonksiyonunu uygulayın böylece null(boş) değer dönmesini engellemiş olursunuz..
 
Katılım
9 Kasım 2007
Mesajlar
51
Excel Vers. ve Dili
OFİS 2003 TR
İlgilendiğiniz için teşekkürler Sayın beab05,

İlk yöntemi denedim sonuç değişmedi. Ancak ikinci yöntem "nz" nin nasıl uygulanacağınıda malesef bilmiyorum. Birde eksik bilgi verdiğimi zannediyorum. Şöyle ki ; Ordaki "günt" direkt sorgudan gelmiyor. Yani Birleştirme1 altformundaki veriler geriye doğru istenilen aralıktaki sıralı tarihlerdir. Bende bu tarihlerin sayısını görmek için birleştirme1 alt formu Form alt bilgisine bir metin kutusu ekledim (günt) ve Say fonksiyonunu uyguladım. Sorgulama sonucunda verilen aralığa uygun tarih yok ise "günt" boş gözüküyor. Ama yukardaki kod hata veriyo.

İyi Çalışmalar...
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın kuva_i_milliye23,

Kod:
If [Form_birleştirme1 alt formu].günt.Value >= 6 Then
Eğer kaydet düğümesi asıl formun üstünde ise ki öyle zannediyorum, o zaman kodları şöyle değiştirin.

Kod:
If [Form_birleştirme1 alt formu].Form.günt.Value >= 6 Then
Tabi alt formun adı Form_birleştirme1 alt formu ise.

Değilse o zaman formunuzu açıp özellikler penceresini açın ve üstteki açılan kutudan adını bulup kodlarınıza onu yazın.

İyi çalışmalar
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Bir de şöyle deneyin:

Kod:
If Nz([Form_birleştirme1 alt formu].Form.günt.Value,0) >= 6 Then
İyi çalışmalar
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Bakın sanırım End If hatalı yerde sanırım.


Kod:
 [LEFT]Private Sub KAYDET_Click()
Dim uyari1 As Integer
On Error GoTo Err_KAYDET_Click

Me.src1süre.Requery
If [Form_birleştirme1 alt formu].günt.Value >= 6 Then
uyari1 = MsgBox("Bu Durumda Kayıt işlemi yapmanız önerilmez" + vbCrLf + "Kayda işlemini iptal etmek  için EVET i, devam etmek için HAYIR' ı tıklayın", vbYesNo, "USÜLSÜZ KAYIT İŞLEMİ UYARISI")
End If
If uyari1 = vbYes Then
Me.Undo
Exit Sub
End If
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

Exit_KAYDET_Click:

    Exit Sub

Err_KAYDET_Click:
    MsgBox Err.Description
        Resume Exit_KAYDET_Click
End Sub[/LEFT]
gibi bir şey olması gerekiyor. Ama denemem gerekiyor​
 
Katılım
9 Kasım 2007
Mesajlar
51
Excel Vers. ve Dili
OFİS 2003 TR
Oraya eklediğim örnekte hatalı olabilir ancak ben asıl forma uyguluyorum ancak alt form boş olduğunda daha kod başlarken hata veriyor
"If Nz([Form_birleştirme1 alt formu].Form.günt.Value, 0) >= 6 Then" satırı sarıya boyanıyor..
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Bir de bunu deneyin:

Kod:
If Nz([Form_birleştirme1 alt formu].Form.günt.Value, 0) > 6  Or  Nz([Form_birleştirme1 alt formu].Form.günt.Value, 0) = 6 Then
 
Katılım
9 Kasım 2007
Mesajlar
51
Excel Vers. ve Dili
OFİS 2003 TR
Bu defa hepten çalışmadı Comlipe erro Syntax error diye bi hata verdi üstelik veri varken
 
Üst