Alt Tablolarla İşlemler

1 2 3
24/10/2020, 00:17

fenerli6774

rsSQL1 deyimindeki "SQL1"i komut kendisi mi oluşturuyor? Çünkü ben önceki örnekteki "Sorgu1" sorgusunu sildim. Eğer komut satırındaki "SQL1"  önceki örnek dosyamdaki "Sorgu1" sorgusundan veri çekiyorsa tekrar oluşturacağım.
Eğer kendisi oluşturuyorsa aşağıdaki komutun "rsSQL1.Fields" kısmında hata veriyor.

If Varmi = 0 Then

DoCmd.RunSQL "INSERT INTO tblHarcliklar (SıraID,YilID, Ay, Ekgosterge, Katsayi, Yuvarlama, Odenen, Odemebir, Odemeiki, Odemeuc, Odemedort, Borcbir, Borciki, Borcuc, Borcdort) VALUES (" & rsSQL1.Fields("SıraID") & ", '" & YilDegeri & "','" & Me.txtAy & "','" & Me.akEkgosterge & "', '" & Me.txtKatsayi & "', '" & Me.txtYuvarlama & "', '" & Me.txtOdenen & "', '" & Me.txtOdemebir & "', '" & Me.txtOdemeiki & "', '" & Me.txtOdemeuc & "', '" & Me.txtOdemedort & "','" & Me.txtBorcbir & "','" & Me.txtBorciki & "','" & Me.txtBorcuc & "','" & Me.txtBorcdort & "')"

End If
24/10/2020, 00:35

berduş

strSQL1 = "SELECT * FROM Kutukdefteri WHERE (((Durumu)='Aktif') AND ((Yatılılıkdurumu)='Parasız'));"
bahsettiğiniz kod bu ise burada sadece Kutukdefteri tablosuna atif var başka bir sorguya gerek yok
24/10/2020, 02:01

fenerli6774

If Varmi = 0 Then

DoCmd.RunSQL "INSERT INTO tblHarcliklar (SıraID,YilID, Ay, Ekgosterge, Katsayi, Yuvarlama, Odenen, Odemebir, Odemeiki, Odemeuc, Odemedort, Borcbir, Borciki, Borcuc, Borcdort) VALUES (" & rsSQL1.Fields("SıraID") & ", '" & YilDegeri & "','" & Me.txtAy & "','" & Me.akEkgosterge & "', '" & Me.txtKatsayi & "', '" & Me.txtYuvarlama & "', '" & Me.txtOdenen & "', '" & Me.txtOdemebir & "', '" & Me.txtOdemeiki & "', '" & Me.txtOdemeuc & "', '" & Me.txtOdemedort & "','" & Me.txtBorcbir & "','" & Me.txtBorciki & "','" & Me.txtBorcuc & "','" & Me.txtBorcdort & "')"

End If

komut dizesinde yukarıda 3. satırda VALUES("&rsSQL1.Fields...... kısmında hata veriyor. "Fields" kısmında hata veriyor.
"Metod or data member not found" uyarısı veriyor.
24/10/2020, 02:10

fenerli6774

Bahsettiğim problemi çözdüm. Geri dönüş yapacağım.
24/10/2020, 02:24

fenerli6774

If Varmi = 0 Then

DoCmd.RunSQL "INSERT INTO tblHarcliklar (SıraID,YilID, Ay, Ekgosterge, Katsayi, Yuvarlama, Odenen, Odemebir, Odemeiki, Odemeuc, Odemedort, Borcbir, Borciki, Borcuc, Borcdort) VALUES (" & rsSQL1.Fields("SıraID") & ", '" & YilDegeri & "','" & Me.txtAy & "','" & Me.akEkgosterge & "', '" & Me.txtKatsayi & "', '" & Me.txtYuvarlama & "', '" & Me.txtOdenen & "', '" & Me.txtOdemebir & "', '" & Me.txtOdemeiki & "', '" & Me.txtOdemeuc & "', '" & Me.txtOdemedort & "','" & Me.txtBorcbir & "','" & Me.txtBorciki & "','" & Me.txtBorcuc & "','" & Me.txtBorcdort & "')"

End If

komutunun sonuna end if den önce Else ekleyip aynı komutu tekrar yazdım.
Amacım işlemi hatalı yapmış isem verileri güncellemek. İşe yaradı ama eksik oldu.
Güncelleme yapacağına ekleme yaptı.
Ekleme yapmadan önce eski verileri nasıl sildirebilirim.
Yani 2014 yılı Eylül ayı bordrosunu yanlış yaptıysam. Düzeltip tekrar butona bastığımda önceki 2014 yılının eylül ayını silip yeni verileri yazmasını istiyorum.
Bu arada yazdığınız komutları biraz çözer gibi oldum. Teşekkür ediyorum. Özellikle sabrınıza.
24/10/2020, 02:44

feraz

Dosyanızı inceleyemedim lakin alttaki kod tablodaki tüm verileri silmesi gerek.tabload yerne hangi tablodaki veriler silinecekse o ad yazılmalı.

DoCmd.SetWarnings False
DoCmd.RunSQL "Delete * From [tabload]"
DoCmd.SetWarnings True

İlgili koduda örnek olarak alttaki gibi yaparsanız şartlı siler.
Alttaki sadece bir kalıp fikir açısından.

Delete * From [tabload] WHERE [AlanAd]='Eylül'"
1 2 3