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);"