Kayıt Varsa Güncelle, Yoksa Ekle

1 2 3
22/06/2021, 14:00

SeferŞANLI

Eklediğim programda "is_id" türüne göre kayıt oluştutulduysa kaydı güncelleştirmesini, yoksa eklemesini istiyorum. Bir türlü Yapamadım. Ayrıca öğretmen sayısı girilmeden hesapla/güncelleştir butonu çalışmaması ve öğretmen sayısı kısmında sıfır ve boşluk kriterlerinde işlem yapmamasını nasıl sağlarız.

"Ana menüden"-"dersyükü hesabı" -"hesapla/güncelle" butonu tıklama yordamı.
22/06/2021, 14:23

berduş

Dcount ile kaydın olup olmadığı kontrol edilebilir.
23/06/2021, 09:14

SeferŞANLI

If DCount("ders_ter_id", "tbl_dersyuku_alt", "[is_id]=" & Gis_id) > 0 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE tbl_dersyuku_alt set tbl_dersyuku_alt.ogrtsay=" & Gogrtsay & ",tbl_dersyuku_alt.alansef=" & Galansef & ",tbl_dersyuku_alt.atlsef = " & Gatlsef & ",tbl_dersyuku_alt.ibe = " & Gisletme & ",tbl_dersyuku_alt.ddh = " & Gddh & ",tbl_dersyuku_alt.dersyükü = " & Gfiilidersyk & ",tbl_dersyuku_alt.ogrfiilidersyk = " & Gogrtfiili & ",tbl_dersyuku_alt.ogrtplmdrsyk = " & Gogrtplyk & ",tbl_dersyuku_alt.tpldersyk = " & Gtoplamdersyk & ""
DoCmd.SetWarnings True
Else
DoCmd.SetWarnings False

DoCmd.RunSQL "insert into tbl_dersyuku_alt(ogrtsay,alansef,atlsef,ibe,ddh,dersyükü,ogrfiilidersyk,ogrtplmdrsyk,tpldersyk,is_id)values (" & Gogrtsay & "," & Galansef & "," & Gatlsef & "," & Gisletme & "," & Gddh & "," & Gfiilidersyk & "," & Gogrtfiili & "," & Gogrtplyk & "," & Gtoplamdersyk & "," & Gis_id & ")"
DoCmd.SetWarnings True

End If

bu şekilde deniyorum lakin hatalar alıyorum.
23/06/2021, 12:36

SeferŞANLI

Yapamadım. Arkadaşlar. Bu konuda yardımcı olabilir misiniz?
23/06/2021, 12:50

berduş

Bilgisayar olmadığı için dosyanızı inceleyemiyorum sorun nerede çıkıyor?
dcount sonucu doğru gösteriyor mu?
23/06/2021, 13:08

SeferŞANLI

https://resimyukle.org/i/BBtiu

Ana form ve alt formla "is_id" ile bağlı

Amacım şu dersler tablosundan seçilen dersleri alt forma aktardıktan sonra, eklediğim resimdeki değişken verileri hesaplatarak ilgili tablolara göndermek.
Eğer tabloda seçilen işe ait kayıt varsa güncelleyecek, yoksa ekleyecek.


Hatalar şu şekilde oluşuyor.

Öğretmen sayısı alanına veri girilmeden güncelle butonuna basınca bağlı tabloya kayıt atıyor. Oysa atmaması gerek.
Yine Öğretmen alanına veri girilip güncelle butonuna basılınca tablonun alt satırına veriyi atıyor ve forma mevcut veri gelmiyor.

**** Öğretmen sayısı alanı nına sıfır boşluk ve metinsel karakter girilmemeli.
***** veri girişi sadece güncelle kaydet butonuyla sağlanmalı


Dim Gfiilidersyk, Gisletme, Gfiil, Gatlsef, Galansef, Gddh, Gtoplamdersyk, Gogrtfiili, Gogrtplyk, Gogrtsay As Integer
If txtogrtsay = 0 Or IsNull(txtogrtsay) Then
MsgBox "Lütfen öğretmen sayısını giriniz!!!!...", vbOKOnly, "Uyari"
Me.Undo
Exit Sub
End If
Gisletme = Dsum ("dersyükü", "tbl_dersyuku", "[is_id]=" & [is_id] & " and [dersadi]='İşletmelerde Beceri Eğitimi'") 'işletme yükü
Gfiil = Dsum ("dersyükü", "tbl_dersyuku", "[is_id]=" & [is_id])
Gfiilidersyk = Gfiil - Gisletme

Galansef = Me.txtalansef
Gatlsef = Me.txtatlsef
Gogrtsay = Me.txtogrtsay
Gis_id = Me.is_id

Gddh = Int(Gfiilidersyk / Me.txtogrtsay)

Gtoplamdersyk = Nz((Gfiilidersyk + Gisletme + Galansef + Gatlsef + Gddh), 0) ' toplam ders yükü
Gogrtfiili = Int(Gfiilidersyk / Gogrtsay) 'öğretmen başına düşen fiili yük

Gogrtplyk = Int(Gtoplamdersyk / Gogrtsay) ' öğretmen başına düşen toplam yük



If DCount("ders_ter_id", "tbl_dersyuku_alt", "[is_id]=" & Gis_id) <> 0 Then
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE tbl_dersyuku_alt set tbl_dersyuku_alt.ogrtsay=" & Gogrtsay & ",tbl_dersyuku_alt.alansef=" & Galansef & ",tbl_dersyuku_alt.atlsef = " & Gatlsef & ",tbl_dersyuku_alt.ibe = " & Gisletme & ",tbl_dersyuku_alt.ddh = " & Gddh & ",tbl_dersyuku_alt.dersyükü = " & Gfiilidersyk & ",tbl_dersyuku_alt.ogrfiilidersyk = " & Gogrtfiili & ",tbl_dersyuku_alt.ogrtplmdrsyk = " & Gogrtplyk & ",tbl_dersyuku_alt.tpldersyk = " & Gtoplamdersyk & ""
DoCmd.SetWarnings True
Else
DoCmd.SetWarnings False

DoCmd.RunSQL "insert into tbl_dersyuku_alt(ogrtsay,alansef,atlsef,ibe,ddh,dersyükü,ogrfiilidersyk,ogrtplmdrsyk,tpldersyk,is_id)values (" & Gogrtsay & "," & Galansef & "," & Gatlsef & "," & Gisletme & "," & Gddh & "," & Gfiilidersyk & "," & Gogrtfiili & "," & Gogrtplyk & "," & Gtoplamdersyk & "," & Gis_id & ")"
DoCmd.SetWarnings True

End If
Forms!frm_tercih_islemleri!.Form.frm_alt_tercih.Requery
'Forms!frm_tercih_islemleri!.Form.frm_ders_Saati.Recalc
'Forms!frm_tercih_islemleri!.Form.frm_ders_Saati.Requery
Forms!frm_tercih_islemleri.Recalc
****** veri girişinden vazgeçilince kayıt oluşturulmamalı.
1 2 3