(24/02/2020, 00:22)Oğuz Türkyılmaz yazdı: (23/02/2020, 23:57)Oğuz Türkyılmaz yazdı: (23/02/2020, 23:23)berduş yazdı: Nz fonksiyonunun temel mantığı eğer alan bossa varsayılan bir değer eklemektir
Nz(sayı, 0) derseniz sayı alanı boşsa 0 yazar
Nz(metin, "deger yok") , metin alani boşsa "deger yok" yazar
Son olarak denemedim ama bence çalışması gerekir diyelim ki
Nz(Tarih, date) yazarsanız tarih alanı boşsa o günün tarihini girmesi gerek
Nz(txtadisoyadi,"") gibi
iliskisiz formun textboxlari eger metin olarak secildiyse Sql koduyla kaydetmede sorun yok kaydediyor , sadece tarih, evet/Hayir ve sayi alan tiplerinde secildiyse kaydetmiyor bir varsayilan deger vermek gerekiyor denemelerimden anladigim.Sayi alan tipindeki yerlerin basina NZ ekleyip bir deneme yapayim abakalim calistirabilecekmiyim merak ettim.
olmadi olmadigi gibi yaptiklarimi sildikten sonra kodda calismaz oldu hata veriyor.
Tablolarınızda eğer boş geçilebilme olasılığı olan alanlar var ise Varsayılan Değer kısmını -> "" gibi bir boşluk karakteri ile pas geçtirebilirsiniz..
aşağıdaki kodu dener misiniz?
tüm alanlar boşsa bile ekliyor.
Private Sub btnKaydet_Click()
Dim SqlEkle As String
Dim dTrh
If IsNull(Me.txtdTarihi) Then dTrh = "Null" Else dTrh = CLng(txtdTarihi) ' yada dTrh = "Null" yerine dTrh = CLng(Date) de yazılabilir
If MsgBox("Girdiginiz veriler kaydedilecektir, Onayliyormusunuz ", vbExclamation + vbYesNo, "Dikkat") = vbYes Then
SqlEkle = " insert into T_Personel " & _
"( uyeNo, AdiSoyadi, tcNo, dTarihi, dYeri, hesapBakiyesi, durumu, belge ) values " & _
"(" & Nz(Me.txtuyeNo, "Null") & ",'" & Nz(Me.txtadiSoyadi, "") & "','" & Nz(Me.txttcNo, "") & "', " & _
dTrh & ",'" & Nz(Me.cbodYeri, "") & "', ccur('" & _
Nz(Me.txthesapBakiyesi, "0") & "')," & Nz(Me.okdurumu, 0) & ",'#" & Me.Ek_Belge & "#')"
CurrentDb.Execute SqlEkle
Me.txtuyeNo = Null
Me.txtadiSoyadi = ""
Me.txttcNo = ""
Me.txtdTarihi = Null
Me.cbodYeri = ""
Me.txthesapBakiyesi = Null
Me.okdurumu = 0
Me.Ek_Belge = ""
txtuyeNo.SetFocus
End If
End Sub
Sn.@
berduş tarih formatini dediginiz gibi 2 sekilde de denedim ama ayni hatayi verdi.
NZ kullanmadan cozmek daha basit geldi bana burda 2 degisken tanimlayip ustune insert into da yazilan kodda her alana
NZ eklemek uygulamada bana daha cok kod yuku getirecek sadece tarih alani icin bunca zahmete girmeye gerek yok, Tarih olamadan hersekilde kaydedebiliyorum nasilsa. Diger yontem daha basit benim icin uygulamada da daha kisa ordan yurumek benim icin daha kolay olacak. Uygulamada kodla kaydettikten sonra formun alanlarinin yeni kayit oncesi hazir hale getirilmesi icin yazdimiz
Me.txtuyeNo = ""
Me.txtadiSoyadi = ""
Me.txttcNo = ""
Me.txtdTarihi = "null"
Me.cbodYeri = ""
Me.txthesapBakiyesi = 0
Me.okdurumu = 0
Me.Ek_Belge = ""
kodlari isi biraz uzatiyor. Bununla ilgili bir sorum olacak onada konu acacagim. Onu da basitlestirmek icin her form icin ayri ayri yazmak yerine fonksiyon gibi tanimlayip bir yerden cagirmak gibi bir kolaylik olursa Bu benim icin iliskisiz formda kayit olayini tamamen tum formlara uygulayabilme kolayligini saglar. Yardimlariniz icin tesekkur ederim. Konuyu tasiyabilirsiniz.
b
aynı kodları sizin çalışmanızı indirip ekledim sorunsuz çalıştı?