AccessTr.neT

Tam Versiyon: Güncelleme Sorgusu
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4 5
Uygulamaya form ekle, forma buton ekle. Butonun tıklandığında olayına

DoCmd.SetWarnings False

DoCmd.RunSQL "INSERT INTO dimbilli ( kisi_idfk, adisoyadi, tcno, dimbilli ) SELECT kisi_id, adisoyadi, tcno, dimbilli FROM tbl_kisiler WHERE (dimbilli=1);"
DoCmd.RunSQL "UPDATE dimbilli INNER JOIN tbl_kisiler ON dimbilli.kisi_idfk = tbl_kisiler.kisi_id SET dimbilli.kisi_idfk = [tbl_kisiler].[kisi_id], dimbilli.adisoyadi = [tbl_kisiler].[adisoyadi], dimbilli.dimbilli = [tbl_kisiler].[dimbilli], dimbilli.tcno = [tbl_kisiler].[tcno] WHERE ((dimbilli.dimbilli=1));"
DoCmd.RunSQL "DELETE dimbillİ FROM dimbillİ WHERE (dimbilli<>1);"

DoCmd.SetWarnings True


kodu ekle, Ekleme, güncelleştirme ve silme sorgusu çalışsın.
sn ozanakkaya sizin silme sorgusu işimi gördü.
Yine de En son önerinizi de uygulamaya çalışacağımTeşekkür ederim. Saygılar
Çok teşekkür ederin sn ozanakkaya bir butonla sorguları tek tek çalıştırmaya gerek kalmadı sağolasınız.
(11/10/2019, 14:43)ozanakkaya yazdı: [ -> ]Uygulamaya form ekle
Sn ozanakkaya sizin eklediğiniz bu kodları başka örneklerde uygulama adına ,daha iyi anlama adına alıştırmalar yapıyorum da ;

tek değiklik olarak dimbilli tablosunun adını tbl_dimbilli olarak değiştirdiğimde ,aşağıdaki kodu (koyu işaretle yazdığım şekliyle) yazsam yeterli olur mu?
tbl_kisiler tablosundaki dimbilli alanı ile 2.tablonun adı aynı olmaması adına.Esasen baştan tasarımı iyi yapmam gerekiyordu.
Zannedersem sorgulardaki kodlarda değişmesi gerekiyor.Açıklama yazarsanız sevinirim saygılar

DoCmd.SetWarnings False

DoCmd.RunSQL "INSERT INTO tbl_dimbilli
( kisi_idfk, adisoyadi, tcno, dimbilli ) SELECT kisi_id, adisoyadi, tcno, dimbilli FROM tbl_kisiler WHERE (dimbilli=1);"
DoCmd.RunSQL "UPDATE dimbilli INNER JOIN tbl_kisiler
ON dimbilli.kisi_idfk = tbl_kisiler.kisi_id SET dimbilli.kisi_idfk = [tbl_kisiler].[kisi_id], dimbilli.adisoyadi = [tbl_kisiler].[adisoyadi], dimbilli.dimbilli = [tbl_kisiler].[dimbilli], dimbilli.tcno = [tbl_kisiler].[tcno] WHERE ((dimbilli.dimbilli=1));"
DoCmd.RunSQL "DELETE dimbillİ FROM dimbillİ WHERE
(dimbilli<>1);"

DoCmd.SetWarnings
True
Yaptığınız değişiklik ilk sorgu için tamam, ancak altta 2 sorgu kodu daha var. 


DoCmd.RunSQL "UPDATE dimbilli INNER JOIN tbl_kisiler ON dimbilli.kisi_idfk = tbl_kisiler.kisi_id SET dimbilli.kisi_idfk = [tbl_kisiler].[kisi_id], dimbilli.adisoyadi = [tbl_kisiler].[adisoyadi], dimbilli.dimbilli = [tbl_kisiler].[dimbilli], dimbilli.tcno = [tbl_kisiler].[tcno] WHERE ((dimbilli.dimbilli=1));"
DoCmd.RunSQL "DELETE dimbillİ FROM dimbillİ WHERE (dimbilli<>1);"


Bu tür değişikliklerde,  mesela;

DoCmd.RunSQL "UPDATE dimbilli INNER JOIN tbl_kisiler ON dimbilli.kisi_idfk = tbl_kisiler.kisi_id SET dimbilli.kisi_idfk = [tbl_kisiler].[kisi_id], dimbilli.adisoyadi = [tbl_kisiler].[adisoyadi], dimbilli.dimbilli = [tbl_kisiler].[dimbilli], dimbilli.tcno = [tbl_kisiler].[tcno] WHERE ((dimbilli.dimbilli=1));"

Kodu, kodda çift tırnak arasındaki kısmı kopya, yeni sorgu oluştur, yeni sorgunun Sql kaynağı kısmına kopyaladığın sorguyu yapıştır, sorguyu tasarımda açıp düzenlemeleri yap ve düzenlenmiş sorgunun Sql kaynağını formun Vba sayfasında kullan.
güncelleme sorgusu böyle denedim hata veriyor

"UPDATE tbl_dimbilli INNER JOIN tbl_kisiler ON dimbilli.kisi_idfk = tbl_kisiler.kisi_id SET dimbilli.kisi_idfk = [tbl_kisiler].[kisi_id], dimbilli.adisoyadi = [tbl_kisiler].[adisoyadi], dimbilli.dimbilli = [tbl_kisiler].[dimbilli], dimbilli.tcno = [tbl_kisiler].[tcno] WHERE ((dimbilli.dimbilli=1));"

DoCmd.RunSQL "DELETE tbl_dimbilli FROM dimbilli WHERE (dimbilli<>1);"
Sayfalar: 1 2 3 4 5