Skip to main content

AccessTr.neT


Sql "de Tabloya Kayit Yaparken Bos Deger Kaydi Nasil Yapilir.

Oğuz Türkyılmaz
Oğuz Türkyılmaz
19
2305

Sql "de Tabloya Kayit Yaparken Bos Deger Kaydi Nasil Yapilir.

#13
(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..
Son Düzenleme: 24/02/2020, 17:44, Düzenleyen: Umutcan.
Cevapla
#14
(24/02/2020, 17:44)Umutcan yazdı:
(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..
 Teşekkür ederim.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#15
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
Cevapla
#16
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.

[Resim: do.php?img=9734]
b
[Resim: do.php?img=9735]
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#17
aynı kodları sizin çalışmanızı indirip ekledim sorunsuz çalıştı?
.rar personel_hy.rar (Dosya Boyutu: 25,1 KB | İndirme Sayısı: 4)
Cevapla
#18
Icon_rolleyes Icon_rolleyes Icon_rolleyes Icon_rolleyes Icon_rolleyes
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da