Güncelleme Sorgusu

1 2 3 4 5
11/10/2019, 14:43

ozanakkaya

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.
11/10/2019, 14:47

access acemisi

sn ozanakkaya sizin silme sorgusu işimi gördü.
Yine de En son önerinizi de uygulamaya çalışacağımTeşekkür ederim. Saygılar
11/10/2019, 14:55

access acemisi

Çok teşekkür ederin sn ozanakkaya bir butonla sorguları tek tek çalıştırmaya gerek kalmadı sağolasınız.
13/10/2019, 17:47

access acemisi

(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
13/10/2019, 17:59

ozanakkaya

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.
13/10/2019, 18:19

access acemisi

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);"
1 2 3 4 5