Skip to main content

AccessTr.neT


GÜNCELLEME Sorgusu (UPDATE SORGUSU)

atoz112
atoz112
4
20711

GÜNCELLEME Sorgusu (UPDATE SORGUSU)

#1
SORGULAR\ETKİN SORGU TÜRLERİ– GÜNCELLEME Sorgusu (UPDATE SORGUSU)

TANIMI

Bir tablo içeriğinde,bir kelimenin ya da bir tanımlamanın aranıp bulunması ve akabinde olması istenen bir tanımlama ile bir kriterin ya da durumun veya sonucun gerçekleşmesi (örneğin;hesaplama gibi) durumunda değiştirilmesidir.Tıpkı,üst menüden DÜZEN menüsünde yer alan Bul…Değiştir işlevi yerine kullanımı ile aynıdır.

Kısacası,değişmesi istenilen değer ya da değerlerin;ister sadece tekil olarak isterse de tablo içerisinde tüm kayıtlara yönelik olarak yaymak sureti ile gerçekleşmesi işlemidir.

Birkaç konu uyarlamalı örnekleme ile belki biraz daha netleştirmek yerinde olacaktır,bu anlatımlar için.

1) Bir uygulamada kişi ya da müşteri bilgisi (soyadı,firma adı gibi) bir bilgi değişimi söz konusu olabilir.bu nedenle,bir güncelleme sorgusu ile,bu kişi ya da müşteri aratılıp bulunduğunda yeni edinilen bilgi ile değiştirilmesinin sağlanması.

2) Bir uygulamada ürün bilginde (adı,birimi,üretilen veya getirtilen firmanın adı gibi) bir bilgi değişimi söz konusu olabilir.bu nedenle,bir güncelleme sorgusu ile,bu ürün aratılıp bulunduğunda yeni edinilen bilgi ile değiştirilmesinin sağlanması.

3) Bir uygulamada borç/alacak,girdi/çıktı veya hesaplama güncel kalan değerinin edinilmesi üzerine bir işlemler çalışması olabilir.bu değerlerin en son kaldığı tutarları elde etmek için güncelleme sorgusunun oluşturularak son durumlarının sağlanması.

Bunlara daha başka örneklemeler de katılabilir elbette.sonuçta,uygulamanın içeriği ve elde edilmek istenen amaç önemli.bunların nezdinde nasıl bir güncelleme gerekliliği söz konusu ise,o tercih ya da kriterler doğrultusunda bu güncelleme sorgularının oluşturulması geçerlidir.


OLUŞTURMA

EKLE-SORGU sekmesinden Sorgu Tasarımı seçilir.ardından,sorgu tasarım sayfasında o sorgu için kullanılacak bir ya da birkaç tablo / sorgu seçildikten sonra,Sorgu menüsünden Güncelleştir sekmesi seçilerek belirlenecek alanlarda kullanılacak kriterler (ölçüt) belirlenir ve güncelleştirme sorgusu oluşturulmaya başlanır.

ilgili tasarım sayfasında,Güncelleştir satırına hangi yeni tanımlama isteniyorsa (değiştirilecek yeni tanımlama) yazılır.ölçüt satırına da,tablodan aranıp bulunacak olan tanım yazılır.

oluşturulan sorgu tamamlanıp kaydedildiğinde,kaydedilen güncelleştirme sorgusu nesnesinin adının hemen başında ikon resmi de değişir.
 
1)DÜZ SORGU
(Sorgu Tasarımı üzerinden)

KULLANIM KALIBI
UPDATE guncelenecek_tablo_adi SET [degistirilecek_tanimlanacak_alan_adi] = [degeri_kullanilan_alan_adi1]*[degeri_kullanilan_alan_adi2];

ÖRNEK
Kod:
UPDATE DISTINCTROW siparis_bilgileri SET toplam_ucret = [birim_fiyat]*[siparis_adedi];
AÇIKLAMASI
siparis_bilgileri adlı tablo içerisindeki toplam_ucret adlı alanını, birim_fiyat ve siparis_adedi adlı alanları birbiri ile çarpıp elde edilecek sonucu yazarak GÜNCELLE.

(Olay Yordamı üzerinden)
Bir buton 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 GÜNCELLE ifadesi verilmiş bir butonun TIKLANDIĞINDA olay yordamı içerisine yazılmak sureti ile)


Kod:
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE DISTINCTROW siparis_bilgileri SET toplam_ucret =" & Me.birim_fiyat * Me.siparis_adedi
DoCmd.SetWarnings True


AÇIKLAMASI
siparis_bilgileri adlı tablodaki toplam_ucret adlı alandaki değerleri, birim_fiyat ile siparis_adedi adlı alanların birbiri ile çarpılması sonucu elde edilen değerler ile GÜNCELLE.

2)KRİTERLİ SORGU
(Sorgu Tasarımı üzerinden)


KULLANIM KALIBI
UPDATE Tablo_adi SET [degistirilecek_tanimlanacak_alan_adi]='yeni_ifade' WHERE [id_alan_adi]=" & [Forms]![ana_formun_adi]![id_degerinin_oldugu_metin_denetimi_adi]

ÖRNEK
Kod:
UPDATE Tablo1 SET meslegi =’TEKNİSYEN’ WHERE  id=" & [Forms]![Form1]![id_txt];


AÇIKLAMASI

Form1 adlı formun üzerindeki id_txt  adlı denetimdeki değere göre,Tablo 1 adlı tablo içerisindeki kayıt bilgisini bul ve meslegi adlı alanını TEKNİSYEN ifadesi ile GÜNCELLE.

(Olay Yordamı üzerinden)

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


Kod:
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE Tablo1 SET meslegi =’TEKNİSYEN’ WHERE  id=" & [Forms]![Form1]![id_txt];
DoCmd.SetWarnings True


ÖNEMLİ NOT

Kriter satırında direkt bir ifade değeri veya bir form üzerindeki bir denetim adı yazılırken;eğer tablodaki alanın Veri Türü METİN ise,TEK TIRNAK (‘) içerisinde yazılması gerekmektedir.

Eğer Veri Türü SAYI ise, sayı değerini olduğu gibi yazmak yeterlidir.
 
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ımlarınız için her konu için ayrı ayrı tesekkürler hocam
Cevapla
#3
Emek ve paylaşımlarınız 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
Sayın Benremix,Aşağıda örneklerini verdiğiniz koşullu sorgulama şekillerini bugüne kadar Access te gayet iyi kullandım. Fakat bugün itibariyle "Sorgu bozuk" hatası alıyorum. SQL kod ile yazdığımda da veya direk güncelleme sorgusu çalıştırdığımda da bu böyle. Acil yardımınızı rica ederim.
Cevapla
#5
SEL306  merhaba, hata aldığınız sorgunuzu paylaşırsanız yardımcı olan mutlaka çıkacaktır.
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

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task