Skip to main content

AccessTr.neT


Ekleme Sorgusu (Insert Into Query)

atoz112
atoz112
7
8498

Ekleme Sorgusu (Insert Into Query)

#1
SORGULAR \ ETKİN SORGU TÜRLERİ – EKLEME Sorgusu (INSERT INTO QUERY)

TANIMI

Birbirleri ile bağlantılı olmayan,fakat,aynı veritabanı ile ilgili bilgileri kapsayan veriler içeren ve aynı zamanda da,aynı tablo yapısını barındıran bilgilerin başka bir merkezi olarak belirlenecek tablo içerisinde bulundurulmasını (birleştirilmesini) sağlayan sorgu şeklidir.

OLUŞTURMA
Üst Menü’den EKLE sekmesi üzerine gelindiğinde,SORGU TASARIMI seçeneği ile sorgu tasarım sayfasına geçilir.

Tasarım sayfasının üst kısmında boş bir alan üzerine sağ tuş ile tıklanmak sureti ile TABLO GÖSTER seçeneği yönlendirmesi ile TABLO/SORGU tercihlerinden bir ya da birkaçı (oluşturulmak istenen sorgu içeriğine göre değişir) seçilmek sureti ile ana temel unsur olarak gerekli olan alanların belirlenmesi için tablo veya sorgu seçimleri yapılır.

Akabinde,yine üst menüden ister SORGU Menüsü’nden EKLE seçeneği ile ya da isterse de yine boş bir alan üzerinde sağ tuşa basmak sureti ile SORGU TÜRÜ sekmesi ile EKLEME SORGUSU ifadesi seçilerek çıkacak olan pencereden hangi tabloya (ki,bunun için önceden tanımlı olarak hazırlanmış bir tablo oluşturulmalı) kayıt (ekleme) işlemi yapılmak isteniyorsa o tablonun adı pencere üzerindeki EKLENECEĞİ YER başlıklı TABLO ADI seçimi için oluşturulan Açılan Kutu kullanılarak tablo adı seçilir.

Bu son bahsi yapılan tablo adı seçilir seçilmez,sorgu tasarım sayfasındaki alt kısımda EKLE ifadesi yazılı bir satırın daha dahil edildiği gözlenecektir.

Ayrıca,bir diğer gözlenecek durum da,sorgu tasarımı sayfasında alan değerleri seçildikçe,bahsi geçen EKLE satırında da alan adları hemen seçim akabinde yer almasıdır.
 
1)DÜZ SORGU
(Sorgu Tasarımı üzerinden)

KULLANIM KALIBI
INSERT INTO hangi_tabloya_ekleme_yapilacaksa_o_tablonun_adi ( alan_adi1,alan_adi2,alan_adi3,(eğer başka eklenmek istenirse aralara virgül işareti dahil etmek sureti ile devam edilir)  ) SELECT Tablo1.alan_adi1, Tablo1.alan_adi2, Tablo1.alan_adi3 FROM aktarilacak_alanlari_iceren_tablo_adi;

ÖRNEK
Kod:
INSERT INTO Tablo2 ( isim, adres ) SELECT Tablo1.isim, Tablo1.adres FROM Tablo1;

AÇIKLAMASI
Tablo 1 adlı tablo içerisindeki isim, adres bilgilerini seç ve Tablo2 adlı tablo içerisine ekle.

(Olay Yordamı üzerinden)
Bir formun ya bir alt formun veyahut da bir Listbox denetiminin olay yordamı üzerinden düz sorgu yazılmak istendiği takdirde,SQL kod satırının öncesinde bu satırın bir üst ve bir alt satırlarına

DoCmd.SetWarnings False
…(SQL kod ifadesi satırı)…
DoCmd.SetWarnings True

ifadelerinin yazılması gerekmektedir ki,SQL sorgusu çalıştırıldığında herhangi bir UYARI MESAJI vermesi engellenerek arka planda akabinde çalışmasını tamamlamasını sağlaması gerçekleşsin.

ÖRNEK
(ana form üzerinde KAYDET ifadesi verilmiş bir butonun TIKLANDIĞINDA olay yordamı içerisine yazılmak sureti ile)

Kod:
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Tablo2 ([isim],[adres]) VALUES ('" & Me.isim_txt & "','" & Me.adres_txt & "')"
DoCmd.SetWarnings True


AÇIKLAMASI
isim_txt ve adres_txt adlı textbox denetimlerinde yazılı olan değerleri,Tablo2 adlı tablo içerisindeki isim ve adres alanları içerisine kaydet (ekle).
 
2)KRİTERLİ SORGU
(Sorgu Tasarımı üzerinden)

KULLANIM KALIBI
INSERT INTO hangi_tabloya_ekleme_yapilacaksa_o_tablonun_adi ( alan_adi1,alan_adi2,alan_adi3,(eğer başka eklenmek istenirse aralara virgül işareti dahil etmek sureti ile devam edilir)  ) SELECT Tablo1.alan_adi1, Tablo1.alan_adi2, Tablo1.alan_adi3 FROM aktarilacak_alanlari_iceren_tablo_adi WHERE (((kriterin_uygulanacagi_alan_adi))=kriter_degeri_veya_ifadesi));

ALAN VERİ TÜRÜNE GÖRE KRİTER (ÖLÇÜT) YAZMA

a)    Eğer alan veri türü METİN (String) olarak belirlenmiş ise,

Kriter satırında direkt bir ifade değeri veya bir form üzerindeki bir denetim adı yazılırken;
TEK TIRNAK (‘) içerisinde yazılması gerekmektedir.

ÖRNEK
Kod:
INSERT INTO Tablo2 ( isim, adres ) SELECT Tablo1.isim, Tablo1.adres
FROM Tablo1 WHERE (((Tablo1.adres)="istanbul"));



AÇIKLAMASI
Tablo 1 adlı tablo içerisindeki isim, adres bilgilerini seç ve adres alanında İstanbul ifadesine EŞİT OLANLARI Tablo2 adlı tablo içerisine kaydet (EKLE).

ÖRNEK
Kod:
INSERT INTO Tablo2 ( isim, adres ) SELECT Tablo1.isim, Tablo1.adres
FROM Tablo1 WHERE (((Tablo1.adres)<>[Forms]![Form1]![adres_txt]));


AÇIKLAMASI
Tablo 1 adlı tablo içerisindeki isim, adres bilgilerini seç ve Adres alanı Form1 adlı formun üzerindeki adres_txt adlı textbox denetiminde yazılı olan ifadeye EŞİT OLMAYANLARI Tablo2 adlı tabloya kaydet (EKLE).

b)    Eğer alan veri türü SAYI (Integer) olarak belirlenmiş ise,

Kriter satırında direkt bir ifade değeri veya bir form üzerindeki bir denetim adı yazılırken;
sayı değerini olduğu gibi yazmak yeterlidir.

ÖRNEK
Kod:
INSERT INTO Tablo2 ( isim, yasi ) SELECT Tablo1.isim, Tablo1.yasi
FROM Tablo1 WHERE (((Tablo1.yasi)<40));


AÇIKLAMASI
Tablo 1 adlı tablo içerisindeki isim, yasi bilgilerini seç ve yasi alanında 40 değerinden KÜÇÜK OLANLARI Tablo2 adlı tablo içerisine kaydet (EKLE).

(Olay Yordamı üzerinden)

ÖRNEK
(ana form üzerindeki bir alt formun BOŞ bırakılmış olan KAYIT KAYNAĞI (Record Source) satırına yönelik olarak,ilgili alt formun YÜKLENDİĞİNDE olay yordamı içerisine yazılmak sureti ile)

Kod:
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Tablo2 ([isim],[adres]) VALUES ('" & Me.isim_txt & "','" & Me.adres_txt & "' WHERE kid=" & Me.kid_txt & ")"
DoCmd.SetWarnings True



AÇIKLAMASI
isim_txt ve adres_txt adlı textbox denetimlerinde yazılı olan değerleri,Tablo2 adlı tablo içerisindeki isim ve adres alanları içerisine Tablo1 adlı tablodaki kid alan değeri form üzerindeki kid_txt textbox denetiminin değerine EŞİT OLANI kaydet (ekle).

ÖNEMLİ NOTLAR

- Eğer toplu olarak bir tablodaki seçilen verilerin başka bir tabloya eklenmesi söz konusu olacaksa;eklemenin yapılacağı tablo içerisinde,EKLEME SORGUSU işlemi gerçekleştirilmeden öncesinde o tablodaki tüm verilerin DELETE SORGUSU ile tamamen silinip temizlenmesi ve yeni kayıtlar için hazır duruma getirilmesi daha yerinde olacaktır.böylece,aynı kayıtların yeniden eklenmesi de engellenmiş olacaktır.

- Eğer form üzerinde tek tek kayıtların incelenmesi esnasında mevcut bulunan aktif kayıt verisinin yeni bir tabloya eklenmesi istenirse;hem ilgili kaydın Veri Türü olarak Otomatik Sayı olarak oluşturulmuş ID alan değerine göre kriterli olarak aktarılmasını sağlamalı hem de en önemlisi,seçili aktif kaydın ekleme işleminin yapılacağı tablo içerisinde mevcut olup olmadığını kontrol etmek üzere bir MÜKERRER KAYIT KONTROL kodlarının yazılması daha yerinde olacaktır.böylece,benzer içeriğe sahip kayıtların eklenmesi de engellenmiş olur.

Verimli olması temennisi ile…İyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#2
Paylaşım ve anlatım için teşekkürler.
Cevapla
#3
Emek ve paylaşım için teşekkürler....
Bilgi paylaşıldıkça çoğalır....
Her engel, yaşam koşullarınızı daha iyileştirecek bir fırsattır.


Access için her zaman lazım olacak konu başlıkları listesi


Cevapla
#4
merhaba.

bir tane örnek ekleyebilirmisiniz.


teşekkürler.
Cevapla
#5
(20/12/2019, 10:06)burhanb yazdı: merhaba.

bir tane örnek ekleyebilirmisiniz.


Merhaba, örnek uygulamanızı içeren yeni konu açınız. Ayrıca sorgu ile ne eklenecek ise ayrıntılı bilgi veriniz.
Cevapla
#6
Ozan bey teşekkürler.


sorunu hallettim.


form üzerinden tablo ya boş bir alan ekleyerek güncelleme yaptım.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task