Dokümanistan

Access Sorgu Çeşitleri #9

Access Eğitimi

Bu bölümde Access Sorgular’dan bahsedeceğiz. Daha önceki oluşturduğumuz tablolardan birbirleri ile farklı ilişkilendirmelerle farklı şekilde tablolar oluşturmamızı sağlar. Ama gerçekte böyle bir tablo yoktur. Gerçek tablolara bağlı çalışır. Ama bir tablo gibi de hareket ettiği için birçok gereksiz veri girmekten kurtarmış olur. Aynı zamanda verileri yönetmekte kolaylaşır.

Sorgulara Oluştur Sekmesinden Sorgu Tasarımı seçerek açıyoruz.

Access Oluştur Sorgu Tasarımı

Karşımıza Tabloyu Göster penceresi çıkacaktır. Karşımıza üç sekme gelecektir. Bu alandaki tablo veya sorgulara çift tıklayarak veya seçip Ekle diyerek sorgu ara yüzünde işlemler yapabiliriz.

Tabloyu Göster

Sorgu Tasarım Sekmesi

Sonuçlar

Sonuçlar

SQL Görünümü & SQL Nedir?

Eğer SQL dili biliyorsanız (SQL İçinde Ayrı Eğitimimiz var) hazırladığınız sorguları bu bölümden de yapabilirsiniz.

SQL Görünümü

Var olan bütün database programları (Oracle, MS MSQL Server, My SQL vs.) SQL denilen dili kullanırlar. Örneğin TABLO_MUSTERIKARTI tablosundaki Ahmet isimli müşterileri listelemek istersek aşağıdaki gibi bir kod oluşacaktır.

SELECT * FROM TABLO_MUSTERI WHERE ADI=”AHMET”;

Siz test ettiğinizde parantezler tablo isimleri de görünecektir. Sorun değil aynı koddur. Ben biraz daha sadeleştirerek gösterdim.

SQL dili ayrı bir eğitim konusudur. Ama Access eğitimi sonunda temel olarak SQL ile de neler yapılabileceğiniz kavramış olacaksınız.

  • Tablodan veri getirme SQL kodu SELECT ile başlar.
  • Tabloda güncelleme yapmak için SQL kodu UPDATE ile başlar.
  • Tabloda silme işlemi yapmak için SQL kodu DELETE ile başlar.
  • Tabloya yeni bir satır eklemek için SQL kodu INSERT ile başlar.
  • Yeni bir tablo oluşturmak isterseniz SQL kodu CREATE ile başlar.

Şimdilik bu şekilde bilmeniz yeterli. Bu eğitimde Access arayüzü ile bahsettiğim tüm örnekleri yapıyor olacağız. Bu kısımlara geldiğimizde kod karşılıklarınıza SQL Görünümü bölümünden göz atarsınız.

Çalıştır

Adından da anlaşıldığı gibi bir sorgu hazırladığımızda Çalıştır Butonuna basarak verileri görmemizi sağlar.

Sorgu Türü

Sorgu Türü

Sorgu türleri çeşitleri bölümüdür. Bu işlemler yukarda bahsettiğim SQL dili ile aynıdır. Zaten Access dilinin kaynağı da SQL dilidir.

  • Seç

Veri Listeleme işlevi Görür

  • Tablo Yap

Tablo Oluşturur

  • Ekle

Tabloya Satır Ekler

  • Güncelleştir

Mevcut Girilmiş Satırdaki herhangi bir kolondaki veriyi değiştirir, günceller.

  • Çapraz Tablo
  • Sil

Tablodaki Satırı veya Satırları siler.

  • Birleşim
  • Doğrudan
  • Veri Tanımı

Sorgu Ayarları

Sorgu Ayarları

  • Tablo Göster
  • Satır Ekle
  • Sütun Ekle
  • Satır Sil
  • Sütun Sil
  • Oluşturucu
  • Getir

Göster/ Gizle

Göster / Gizle

  • Toplamlar
  • Parametreler
  • Özellik Sayfası
  • Tablo Adları

Sorgu Ekranı & Alanları

Tasarım Sekmesinden Tablo Göster Seçiyoruz.

Tablo Göster

Karşımıza Tabloların Listesi çıkacaktır.

Tabloyu Göster

Hangi tablo ile işlem yapmak istiyorsak seçip Ekle basıyoruz. Sonra Kapat diyoruz. Belirlediğimiz tablo Sorgu ekranına gelecektir.

Sorgu Ekranı

Yatay aşağıdaki başlıklar görünmekte ve sağ kısma doğru boş alanlar görmektesiniz. Görülen her bir sütun bir kolonda yapılacak işlemleri temsil etmektedir. Örneğin ADI kısmı için işlem yapacaksak boş bir kolonda belirecek ikinci olarak ta SOYADI kısmını da ilave edeceksek şekilde görüldüğü gibi ikinci bölümde belirecektir.

Üst kısımdaki tablodan da hangi kolona çift tıklarsanız sola doğru boş alana Alan ve Tablo kısmı otomatik dolacaktır.

 

Sorgu Alanları ise aşağıdaki şekildedir

Alan

Belirleyeceğimiz Tablodaki Kolon Adı seçildiği alandır.

Tablo

Alan kısmındaki kolonun bağlı olduğu tablo adını gösterir.

Sırala

Alan kısmında seçtiğiniz kolonun sıralamasının Artan’mı yoksa Azalan’mı olduğunu belirleyeceğiniz alandır.

Göster

Sorgu sonucunda verilerin Gösterip göstermeyeceğimiz seçme bölümüdür. Bazen sadece kriter belirlemek isteriz ama sonucunu göstermek istemediğimiz durumlar olur. Böyle durumlarda kullanabilirsiniz

Ölçüt

İşte bu alan Sorgu işleminin en önemli kısımlarından bir tanesidir. Belirlediğimiz kolonda Excel’dekine benzer filtreleme işlemi yapabiliyoruz. Yapacağımız Sorgu örneklerinde sürekli bu alanı kullanacağız.

Veya

Ölçüt kısmının devamı diyebiliriz. Filtreleme işlemini birden fazla kriterle yapacaksak ikinci koşulu bu alana yazarak koşulları artırabiliriz. Veya alanından sonraki boş satırlarda Ölçüt ve Veya alanı yetmediği durumda birçok defa da sorgu yapabilmemizi sağlamak için tasarlanmıştır. Her bir boş satır Veya ölçütü’dür.

Sorguda Ölçüt


Eğitime Access Seç Sorgu Türü Örnekleri #10 makaleden devam edin.

Seçilen Aralığı Koşullu Biçimlendirme ile Renklendirme

Soru Cevap Bölümü

Kadir sordu

Excel Soruları

Merhabalar Mustafa Bey
Öncelikle emeğinize sağlık. Soruma internette çözüm ararken bloğunuza denk geldim ve Koşullu Biçimlendirmeyi görünce sorumu sorayım dedim. Soruya gelecek olursak;
Aşağıdaki gibi sayılardan oluşan bir tablo var

Aşağıdaki şekilde de Veri Doğrulama ile Sol ve Üst başlık başlık numaralarını seçiyorum. Seçtiğim değerler arasında kalan alanları koşullu biçimlendirme ile boyamak istiyorum.

Örneğin yukarıdaki şeçimde D10:H15 arası oluyor. Bu arayı boyamasını istiyorum.

Seçimde dikkat edilmesi gereken; Sütun seç-2 sütun seç-1’den, satır seç-2 ise Satır seç-1’den küçük olmamalı.

Bu işlemi Koşullu Biçimlendirme ile nasıl seçebilirim. Yardımcı olabilir misiniz.

 

Excel Cevapları

Kadir Bey Merhabalar;

Koşullu Biçimlendirme çalışabilmesi için D10:H15 arasındaki değerlere göre çalışır. Hücredeki başka kaynaktan gösterdiğiniz değerlerle Koşullu Biçimlendirme çalışmayacaktır. Bunun için Makro ile yapabiliriz.

 

Satır Sütun Değerlerini Tespit Etmek

Sizin sütun seçim ekranınızdaki seçtiğini değerlere göre aşağı kısmına sizinde kullandığınız KAÇINCI Fonksiyonu ile Satır ve Sütunların kaçıncı hücrede olduğunu buldum. Amacım seçilen hücrenin başlangıç ve bitiş noktasını bulmak.

Liste Veri Seçi Alanı

Formülleri aşağıdaki şekildedir.

M8 Hücresinde Başlangıç Hücresi Satır :
=KAÇINCI(O2;A2:A15;0)+1

N8 Hücresinde Başlangıç Hücresi Sütun :
=KAÇINCI(M2;B1:K1;0)+1

O8 Hücresinde Bitiş Hücresi Satır :
=KAÇINCI(P2;A2:A15;0)+1

P8 Hücresinde Bitiş Hücresi Sütun:
=KAÇINCI(N2;B1:K1;0)+1

 

Sayıların Anlamı

Formüllü Sayıların Anlamı

Öncelikle bu sayıların ne anlama geldiğini anlatıyım.

Başlangıç Hücresi Satır 10 Sütun 4

10.Satır zaten bildiğimiz 10. Satır. 4. Sütun ise A’dan saymaya başlarsak D sütununa denk geliyor. Yani İlk tespit ettiğimi hücre D10 hücresidir.

Başlangıçta Verinin Konumu

Bitiş Hücresi Satır 15 Sütun 8

15. Satır 8. Sütun ise soldan saydığımızda H14 hücresidir.

Bitişte Verinin Konumu

 

Hedef Hücrelere Makro ile Boyama İşlemi Yapıyoruz

Şimdi M8, N8, O8, P8 hücrelerindeki değerlerden yararlanarak Makro ile Hedef hücreleri boyama işlemi yapacağız.


Sub ConditionalFormat()
Dim baslangicHucreSatir As Integer
Dim baslangicHucreSutun As Integer
Dim bitisHucreSatir As Integer
Dim bitisHucreSutun As Integer
Call bicimleriTemizle
baslangicHucreSatir = Range(“M8”).Value
baslangicHucreSutun = Range(“N8”).Value
bitisHucreSatir = Range(“O8”).Value
bitisHucreSutun = Range(“P8”).Value
With Worksheets(1).Range(Cells(baslangicHucreSatir, baslangicHucreSutun), Cells(bitisHucreSatir, bitisHucreSutun)).Interior
Range(“a1”).Select
End Sub


Sub bicimleriTemizle()
Range(“B2:K15”).Select
Selection.ClearFormats
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub

Son olarak tablonun yanına buton ekleyerek makronun çalışmasını sağlıyoruz.

 Kodu kopyaladıktan sonra ( ” ) Çift tırnaklar farklı Karakter oluyor. Bunları klavyedeki Tab tuşunun üstündeki Çift tırnak ile karakterleri ile değiştiriniz.

 

 

Excel Dosya DownloadYazıda kullandığım dosyayı buradan indirebilirsiniz

 

 

 Güvenlik Nedeni ile Makro Dosyalarını paylaşamıyorum. Cevabınızda kullandığımız çalışma kitabını buradan indirip Alt + F11 tuşuna basarak Mako kısmına geçip yukardaki kodu yapıştırın. Sonra da Farklı Kaydet diyerek xlsm olarak kaydedin

 

Excelde Access Tablo Veri Aktarımı Yapmak #8

Access Eğitimi

Daha önceki anlatımlarda gördüğünüz gibi Access Tabloları Excel dosyaları gibi değildir. Access’de veri girmeden önce hangi veri tipi olacağını önceden belirleriz. Bu bölümde Exceldeki verileri  Access Tablo Veri Aktarma nasıl yapılacağından bahsedeceğim. Sihirbazla basitçe aktaracağız. Ancak aktarmada veri tiplerinden hata alıp nasıl analiz edeceğimize odaklanacağız.

Excel Örnek Veri

Bu verileri MATEMATIKSEL_ISLEMLER_VERI.xlsx linkten indirin. Boş bir Access dosyası oluşturun ve Kaydedin.

Dış Veri Sekmesinden Yeni Veri Kaynağını altındaki Dosyadan grubundaki Excel’i seçiyoruz.

Access Dış Veri Al

Karşımıza gelen Dış Veri Al – Excel Elektronik Tablosu alanından indirdiğiniz dosyayı boş Access dosyasına dosya yolunu gösterin.

Access Dış Veri Alma Sihirbazı

Dış Veri Al Sihirbazındaki Seçenekler

Kaynak verileri geçerli veri Tabanına yeni bir tabloya aktar

Bu alan seçiyoruz. Böylelikle bir sefer excel dosyasındaki verileri Access’e yüklüyoruz. Artık Excel ile bir işimiz kalmıyor

Bağlı tablo oluşturarak veri kaynağına bağla

Eğer bu bölümü seçersek tamamen excel dosyası ile bir bağlantı kuracak. Artık Access Tablo alanında bu dosya ile bir değişiklik veya güncelleme yaptığımızda aslında Excel dosyasında işlem yapmış olacağız.

Kaynak verileri geçerli veri tabanına yeni bir tabloya aktar alanını seçiyoruz ve tamam diyoruz.

Elektronik Tablo İçeri Aktarma Sihirbazı

Elektronik Tablo İçeri Aktarma Sihirbazı başlamış oluyor.  Eğer Excel dosyasında birden fazla çalışma sayfası varsa bu ekran gelecek ve hangi çalışma sayfası olduğunu soracaktır. Verileri de o an görerek ismi hatırlamasak bile verileri üzerinden hangi alanlar olduğunu görebilmiş oluyoruz.

Tek bir sayfa varsa bu alan gelmeyecek bir sonraki ekran gelecektir. Bu bölümde ILLER_LISTESI çalışma sayfasını seçiyoruz ve İleri diyoruz.

Access Excel Tablo İçeri Aktarma

Bu bölümde İlk Satır Sütun Başlıklarını İçerir alanı gelecektir. Bu alanı seçersek ilk satır Access Dosyasındaki Kolon adı olacaktır. Bu sebeple ilk satırı seçiyoruz, İleri diyoruz.

Access Excel Tablo İçeri Aktarma Sihirbazı -2

Bu alanda her kolona veri tipi atacağımız bölümdür. Eğer Excelden aldığımız verileri alt alta kararlı bir tipteyse Access o verileri otomatik tipleri kendi belirleyecektir. Plaka alanı görüldüğü gibi Çift yani sayısal alan olarak görülecektir.

Access Excel Tablo İçeri Aktarma Sihirbazı -3

Mouse ile her kolonu seçtiğimizde Alan Seçenekleri alanlarında otomatik belirlenen kısımlar gelecektir. Hiçbir ayar yapmanıza gerek yok verilerimiz düzenli olduğundan Veri Türü doğru gelecektir. Ancak yine de kolonları aşağıdaki şekilde uyumlu mu? Kontrol edebilirsiniz.

Kolonlar Veri Türü
Ürün Adı Kısa Metin
Marka Kısa Metin
Bölge Kısa Metin
Adet Çift (Sayısal)
Fiyat [$] Çift (Sayısal)
Tarih Tarih ve Saat

Kontrol sonrası İleri diyoruz.

Birincil Anahtar Seçim Tercihleri

Birincil Anahtar verilerinizi bilgisayar indexleme dediğimiz bir yöntemle kaydını tutar. Böylece birincil anahtarla bir sorgulama yaparsanız verileriniz çok hızlı gelir. Bir Access Tablo bir tane birincil seçilir.  Birincil anahtarın verimli olabilmesi için her kaydın diğer kayıtlardan benzersiz olması gerekmektedir.

Access Excel Tablo İçeri Aktarma Sihirbazı -3

Access birincil anahtarı Eklesin

Bu seçeneği seçtiğimizde Access kendi birbirine benzemeyen sayısal bir alan belirleyecektir. Eğer böyle bir veriniz yoksa bu alanı seçmelisiniz. Örneğimizde benzersiz alan olmadığı için Kendi sayısal bir benzersiz alan oluşturduğunu göreceksiniz.

Birincil anahtarı ben seçeceğim.

Eğer tablonuzda benzersiz bir alan olsaydı örneğin sicil, TC Kimlik gibi bu alanlarda benzersiz olduğundan bu alanları seçebilirdiniz.

Birincil Anahtarım olmasın

Eğer İşlemlerde Birincil Anahtar ihtiyacınız yoksa bu alanı seçiniz. Ama her ihtimale karşı bu alanı kullanmayınız. Bunun yerine Access birincil anahtarı Eklesin alanı seçerek kendi Birincil Anahtar belirleyin. Mutlaka bir gün lazım olur.

Birincil anahtarı ben seçeceğim alanı seçerek İleri diyoruz.

Son adımda Access’e vereceğimiz Access Tablo Adı sormaktadır. Genelde Excel Sayfasındaki isim hazır olarak gelir. Biz değişiklik yapmadan Son Diyoruz.

Access Excel Tablo İçeri Aktarma Sihirbazı -5

Veri İçeri Aktardıktan Sonra bir Sihirbazın tablomu çözümlemesini istiyorum

Bu alan ile ilgili öğren ve Ayrı bir makale yaz.

Böylece exceldeki URUN_LISTESI tablosunu Access Tablo eklemiş olduk.

Access İçer Aktarılan Tablosu

Ama bir sorun var Tablo olarak iki dosya oluştu ve dosyalardan birinin adı URUN_LISTESI$_İçeriAktarmaHataları şeklindedir. Yani Veriler başarılı şekilde aktarmış ancak sorunlu olan bir durum var.

Veri Aktarma Sırasında İçeri Aktarma Hataları Tablosu Nedir?

Eğer aktarma işlemi tamamlandıktan sonra hemen aldında $_İçeriAktarmaHataları ile biten bir Access Tablo oluşturduysa aktarma verilerinde bir sorun var demektir.

Access İçeri Aktarma Hataları

URUN_LISTESI$_İçeriAktarmaHataları tabloyu açtığımızda Fiyat alanında Tür Dönüşüm hatalı ile karşılaştığını söylüyor. Bu işleminde 16. Satırda olduğunu söylemiş.

Excel dosyamızı açıp Fiyat ($) kolonundaki 16. Satırı kontrol ediyoruz. Tüm satırların sayısal olduğunu ancak 16. Satırın da boş geldiğini gördüm.

Access İçeri Aktarma Hata Kaynağı

Boş olduğu için hangi türde olduğunu tespit edemediğinden verileri aktarmış ancak Access bu şekilde bir uyarı ile veriyi incelemeni istemektedir. Bu doğru bir yaklaşımdır. Her ihtimale karşı verilerde risk oluşacak alanı görmenizi istiyor.

Access Dosyasını açarak 16. Satıra bakalım.

İçeri Aktarılan Access Tablosu

Excel başlık alanını da saydığı için burada bir eksisi 15. Satıra bakacağız. Exceldeki gibi boş gelmiş. Yani sorunlu bir durum değil ama en kısa sürede buraya sayısal bir değer girmeliyiz ki bu alanında tıpkı diğer verileri gibi sayısal olduğunu bilsin. Çünkü Access excel gibi farklı tipteki alanları tek kolonda barındırmaz Veritabanı yapısı olarak çalıştığından her kolonu başta nasıl bir veri türü var belirlemek ister.

  1. Alana sayısal bir değer giriyoruz ve URUN_LISTESI$_İçeriAktarmaHataları tabloyu artık silebiliriz.

Access Tablo Verisi

 

Access Dosya Download Makalede kullandığımız Access Dosyasını buradan indirebilirsiniz.

Tablo Kavramları tamamlandı. Şimdi de Eklediğimiz verileri işleyeceğimiz Sorgu kısmına geçiyoruz. Eğitime Access Sorgu Çeşitleri #9 makaleden devam edin.

Access Tablolar Arası İlişkiler Detaylı Anlatımı #7

Access Eğitimi

Access Eğitim serimizin bu bölümde birden fazla tablodaki verileri tek bir tabloda nasıl birleştireceğimizi diğer bir ifade ile Tablolar Arası İlişkiler konusunu işleyeceğiz. İlk bölümde Giyim Mağazası senaryomuz vardı ve burada 4 tablodan bahsetmiştik. Bu bölümde Müşteri ve Satış tablolarında nasıl ilişkilendireceğimizi anlatmaya çalışacağım.

 

Access Tablo Arası İlişkiler Yapısı

Anlatıma geçmeden önce bu tabloları neden ekledik. Ne işe yarayacaklar, Access formundaki yeri neresidir önce ondan bahsedelim. Çünkü önce projedeki işi anlamamız yukardaki ilişkileri daha kolay kavramamızı sağlayacaktır.

Projedeki Tabloları Oluşturma

Müşteri Tablosu

İlk Bölümlerde Müşteri kartı işlemiştik. Mağazaya gelen Müşterilerin kaydının tutulduğu bölümdür.  Adı, Soyadı, Telefon, Adres ve Kayıt edilen tarihi Otomatik kaydettiğimiz tablodur.

Projedeki Müşteri Tablosu

Adı Soyadı

Müşterinin Adı Soyadı. Tabloda ayrı kolonlara eklendi. Ancak ilerde istersek bu iki alanı Sorgu bölümünde Adı&” ”&Soyad formülü ile birleştirerek kullanacağız.

Telefon Numarası

Müşterinin Telefon Numarası. Borç durumu için aramak veya ilerle Programı geliştirip Toplu SMS gibi işlemler için kayıt oluşturmamı sağlar.

Müşteri Yaşı

Müşterin Yaşını öğrenip satın alan müşteri yaş profilini öğrenip ona göre analiz yapıp alacağım ürünleri bu yaş gruplarına göre karar vermemi sağlayabilirim.

Sadık Müşteri mi?

Müşteri davranışları, ödeme düzeni gibi sizler için favori müşteri tespit ettiğiniz müşterilere bu alanı seçebiliriz. İlerde böyle müşteriler için indirimler jestler hediyeler gibi işlemler yapmak için kullanabilirsiniz.

Adres

Müşteri Adresini alarak Borcu olduğunda hukuki adresine Noter kanalı ile ihbar göndermek için, ya da Özel günlerde adresine toplu olarak kampanya ya da indirimlerde mektup göndermek için kullanabilirsiniz.

Kayıt Tarihi

Müşteri ne zaman kaydedildiyse o tarihi otomatik kaydetmek için kullanacağız. Böylelikle müşterinin ilk ne zaman kaydettiğimizi tespit etmiş olacağız.

Sonuç olarak Müşteri kayıtlarını Form olarak aşağıdaki şekilde oluşturmayı planlıyoruz.

Müşteri Kartı

Müşteri kartının altındaki alanlar ise başka tablolardan çekmektedir.

Satış Tablosu

Müşteri mağazadan ürün alıp kasaya geldiğinde yapılan işlemde SATIS tablosuna kaydedecektir.

Satış Tablosu

Form tasarlamayı planladığımız Ürün Satış formu doldurulduğunda TABLO_SATISISLEMI tablosuna kaydedecektir.

FK_MUSTERI_ID

Bu alan Müşteri tablosundaki veriler ile bağlantı kuracağımız alandır. Bu alan sayesinde projemizde kolaylıklar sağlayacağız. Bu bölümde zaten bu konuya değineceğiz.

AÇIKLAMA

Mağaza sahibi stoklu bir proje istemediği için satılan ürün ile ilgili veya satış işlemi açıklamasını bu alana kaydedilmek üzere oluşturdum.

ÜRÜN TÜR

Her ne kadar açıklama alanında ürün bilgisi yazılsa da mağaza da kategorik şekilde ürün grupları vardır. Kaydetme esnasında kategorik olarak kaydedildiğinde ilerde raporlarlarken kolaylıklar sağlayacaktır.

İŞLEM TÜR

Bu kısım müşterinin borç mu alacaklı mı veya kredi kartı ile mi ödeme yaptı tespit edilen alandır. Form kısmında bu alanlar üzerinde kontroller yapacağız.

ÖDEME TARİHİ

Eğer müşteri birkaç taksit istediyse bu alana ileri tarihli borç açabilmek için kullanılmaktadır. Normal durumlarda işlem tarihi ile aynı işlevi görecektir.

TUTAR

Borçlandırılan alanlar -100 gibi eksi değeri alarak kaydedilir. Kredi Kartı ve Nakit işlemlerde ise artı olarak 100 şeklinde kaydedilir. Hesaplama da artı eksi değerlerinin toplamı şeklinde gösterilir.

İŞLEM TARİHİ

İşlem yapılan anı =Now() fonksiyonundan faydalanarak kayıt ekleme anının zamanını kaydetmektedir. Her tabloda böyle bir alan olmalı. Verinin ne zaman eklendiği yanlış işlem gibi problemli durumlarda o anın verisi her zaman işinize yarayacaktır.

Tablodaki Verilerin Birbirleri ile İlişkiler

Yukarda bahsettiğimiz 2 tablo ile aşağıdaki şekilde bir database yapısı çıkmaktadır. Yapılacak işi anladığımıza göre burada yabancı gelen kavramlar üzerinde biraz duralım.

MUSTERI tablosunda 1 ve çizgi giderek SATIS tablosunun FK_MUSTERI alanına gitmiş ve yanında ∞  işareti görülüyor. Bunun anlamı Müşteri bilgilerinin ID (kayıt) numarasından 1 tane kayıt olabilir.  Buna karşılık gelen SATIS tablosundaki FK_MUSTERI alanında aynı kayıt numarasından birden fazla olabilir. Diğer bir ifade ile SATIŞ tablosuna sonsuza kadar kayıt eklenebilir demektir.

Şimdi bunu bir de senaryo üzerinde anlatalım. Müşteri tablosuna aynı müşteriyi iki defa yani birden fazla kaydetmeyiz bu sebeple Müşteri tablosunda bir müşteri için bir tane kayıt açılmalıdır mantık olarak.

Müşteri bir kere kaydedildi. Bir tane kaydedilen müşteri mağazadan istediği kadar ürün alabilir. O zaman FK_MUSTERI alanında birden fazla aynı numara kaydedilebilir.

 

Müşteri ve Satış Tablosu İlişkiler

Bu kısımla işin mantık kısmına biraz girdik.  Ama hala net olmadığının farkındayım. Biraz sabır. Adım adım mantığı anlatıyorum.

Yukarda bahsettiğim bir kayıt çok kayıt gibi kavramları gelin veriler üzerinde görelim.

TABLO_MUSTERI Tablosundaki Sıra No (ID) alanı

Müşteri kaydı olduğu anda atama numaradır. Müşteri kaydettiği hareketinin kayıt numarasıdır.

TABLO_MUSTERI Tablosu Sıra No ile TABLO_SATIS Tablosu FK_MUSTERI İlişkileri

Örneğin 47. Sırada olan Ahmet GÜNDÜZ müşterisinin bilgileri TABLO_MÜŞTERİ tablosunda tutulmaktadır. TABLO_SATIŞ tablosunda ise o müşteriye ait para hareketleri görünmektedir. BORÇ olanlar ürün aldığı, Nakit alanlar ise Ödemeler olmak üzere 6 adet para hareketi olmuştur.

Bu kaydın ilişkisini FK_MUSTERI alanında Ahmet Gündüz’ün sıra numarası ile aynı olduğu için tablolar birbirleri ile eşleşmiş oluyor.

Müşteri ve Satış Tablo İlişkiler Veri Görünümü

Tablolar Arası İlişkiler

TABLO_MUSTERI tablosunda 47 ile 60 arasında kayıt var. Bu bağlı olan TABLO_SATIS tablosundaki FK_MUSTERI alanı ile ilişkili kayıtlar var. Ancak TABLO_SATIS tablosunun son satırda 100 nolu kayıt TABLO_MUSTERI tablosunda kayıtlı değil. Yani herhangi bir satışa bağlı olmayan ortada bir kayıt görünüyor. Yani kime satıldığı belli olmayan kayıt diyebiliriz. Böyle bir durumda ise hazırladığımız program istediğimiz düzende çalışmamış olur. Birbirinden kopuk kayıtlar meydana gelir.

Bire Çok Tablo İlişkiler

Eğer Kod ile program yazıyor olsaydık. bu sorunu kontrol edebilecek bir mekanizma geliştirmemiz gerekiyordu. Ama sadece kod yeterli gelmez. Bu işlemi veritabanında da kontrollerini yapmak gerekiyor. Yani örnekte gösterdiğimiz 100 nolu kaydı gördüğü anda program yapısından dolayı ilişkili tabloda böyle bir kayıt yok diye hata vermesini sağlamalıyız. Diğer bir ifade ile böyle bir kayda asla izin vermemesi gerekiyor. Veri tabanı olarak ta bu sorunun önüne geçilecek yöntemler var.

Bu ilişkiyi kurmanın 2 yöntemi vardır.

I. Yöntem – Veritabanı Araçları – İlişkiler

Veritabanı Araçları sekmesinden İlişkileri seçiyoruz.

Access İlişkiler Menüsü

Karşımızda hangi tablolar ile ilişkilendireceksek o tabloları açmamızı istemektedir.

Access İlişkiler Menüsü Tabloyu Göster Ekranı

Yukarıda şekilde seçili olan bu bölümde çalıştığımız tabloları seçip Ekle diyoruz. Sonra da Kapat diyoruz.  (İlişkiler bölümündeyken Tablo Göster alanını seçerek te tablo Ekle çıkarma işlemi yapabiliriz.)

TABLO_MUSTERI’nın ID kolonundan sürüklemeye başlayarak TABLO_SATISI tablosundaki FK_MUSTERI tablosunda doğru sürükleyip bırakıyoruz.

Access İlişkiler Ekranı

İlişkileri Düzenle

Access İlişkiler Düzenle

Tablolardaki alanları sürüklediğimizde yukardaki şekilde bir ekran gelecek. Bu kısım seçilen kolonlar arasında nasıl bir ilişki olacağını belirleyecektir.

Tablo sorgu

İlk seçimi TABLO_MUSTERI alanındaki ID ile başlayarak sürükleme işlemi yaptığım için Tablo/Sorgu alanında bu alanı göstermiştir.

İlişkili Tablo/Sorgu

İlk alanı seçip sürüklediğimde hangi kolon üzerinde bıraktıysam İlişkili Tablo/Sorgu alanında o tablo ve kolonunu göstermiştir.

Bilgi Tutarlılığına Zorla

Bu alanı seçtiğimde TABLO_SATIS tablosunda 100 nolu kayıt girdiğimizde bu kayda izin vermemiş olacağız. Zaten ilişkili tablo yapmamızın da amacı buydu. Bu sebeple bu alanın seçimi önemli.

İlişkili Alanları Art arda Güncelleştir

Örneğin bir müşterinin numarasını değiştirdiğimizde eğer başka bir tabloda da bunla ilişkili bir tablo varsa otomatik olarak onun numarası da değişecektir. Bu da bizim işimizi kolaylaştıracaktır. Bu avantajdan yararlanmak için de bu alanı da seçiyoruz.

İlişkili Alanları Art arda Sil

Örneğin müşterinin kaydını sildiğimizde yaptığı satış aldığı ve buna bağlı aldığı ürünlerin de silinmesini istediğimizde bu alanı seçeriz. Ancak bu örneğimiz de böyle bir işlem mantıksızdır. Bu sebeple bu alanı seçmiyoruz.

Birleştirme Türü Özellikleri

Access Birleştirme Özellikleri

Birleştirme özellikleri alanında 3 çeşit seçenek görülmektedir. Bu seçenekler veri tabanı dilinde 1’e çok, Çok’a Çok ilişkiler olarak adlandırırız. Bu açıklamadan anlaşılacağı üzere seçeneğe göre bazı tablonun tüm değerleri diğer tablonun birleşeni gibi seçeneğe göre verilerin getirmesini sağlarız. Örneğimizi yaparken MÜŞTERİ alanından sürüklemeye başladığım için MÜŞTERİ KARTI 1 kayıtdır. Hedef olarak ta SATIŞ tablosundaki FK_MUSTERI alanında sonlandırdığımda ise çok kayıt işareti olan ∞ (sonsuz) işareti ile temsil etmekteyiz.

Bunun anlamı ise MÜŞTERİ KARTI 1 tane kayıt getir. SATIŞ İŞLEMİ tablosunda ise çok tane kayıt getir demiş oluyoruz.

Senaryomuzdan yola çıkarsak bir tane müşteri birden fazla kez satış işlemi yapabilir demiş oluyoruz.

Seçenekler

1: Yalnızca, her iki tablodan birleştirilmiş alanların eşit olduğu satırları içer.

2: ‘TABLO_MUSTERI’ içindeki TÜM kayıtları ve ‘TABLO_SATIS’ içinde ise yalnızca birleşen alanların eşit olduğu kayıtları içer.

3: ‘TABLO_SATIS’ içindeki TÜM kayıtları ve ‘TABLO_MUSTERI’ içinden ise yalnızca birleşen alanların eşit olduğu kayıtları içer.

 

Örneğimizde devam edecek olursak ilişkilendirme sonunda aşağıdaki gibi görsele sahip olacağız.

Not : Bu ilişkileri yapmadan önce SATIŞ tablosunda örnek olarak kullandığımız 100 nolu kaydı silmeniz gerekiyor. Aksi takdire ilişki kuramadığı için hata verecektir.

Access Tablo İlişkiler

İlişkileri belirledik artık İlişkiler bu alanı kapatabiliriz.

II. Yöntem – Sihir İle Sorgu Üreterek

İlişki tablo kullanımdaki anlatacağımız bu yöntem daha kolay ve kullanışlı yöntemdir. Genelde bu yöntemi kullanacağız. Bu yöntem de önceki gibi ilişkileri göz önünde bulunduruyor. İlaveten görsel olarak ta ilişkileri anlamamızı sağlıyor.

Önceki İlişkilendirmenin Bağlantısının Koparıyoruz

Bu işleme geçmeden önce ilişkilendirdiğimiz tabloların ilişkilerini kaldırıyoruz. Bunun için Veritabanı araçları – İlişkiler seçiyoruz.

Açılan ilişki ekranından aşağıdaki gibi ilişki çizgisinin üzerine gelip seçtikten sonra DELETE tuşuna basıyoruz.

Access Tablo İlişkiler Bağlantı Koparma

İlişkiler tablosu aşağıdaki şekilde ilişkiler kapatıldıktan sonra aşağıdaki şekilde olmalıdır.

Access Tablo İlişkiler Bağlantı Koparma Sonuç

İlişkiler dosyasını kapatabiliriz. Artık tabloların birbiri ile bağı kalmamıştır. Müşteri Numarasında olmayan bir kaydı Satış işlemi tablosunda veri girişi yapılmaktadır. Bu da iki tablo arası ilişki kurulmamış demektir.

Arama Sihirbazı İle FK_MUSTERI alanını ilişkilendirme

FK_MUSTERI kolonunun tablosu olan TABLO_SATIS tablosunu tasarım görünümünde açıyoruz. Satış Kaydı girerken TABLO_MUSTERI alanının ID alanındaki verilerden alıyorduk. Şimdi yine Müşteri tablosundaki sayı ile ilişkilendireceğim.

Bunun için TABLO_SATIS tablosunu tasarım görünümünde açıyoruz. FK_MUSTERI alanı daha önceden sayı veri tipindeydi. Bunun yerine Arama Sihirbazını seçiyoruz. Bu adımdan karşımıza 3-4 adımlık sorular gelecektir.

Bu yöntemde amacımız yine Müşteri Tablosundaki numara ile ilişki kurmaktır. Tek farkı ilişkiler üzerinden değilde her ilişki kuracağımız yerde Arama Sihirbazı ile verileri ilişkilendireceğiz.

Access Arama Sihirbazı İle Tablo İlişkiler Kurma

İlk çıkan adımda Arama alanı öğesinin değerleri başka bir tablo veya sorgudan almasını istiyorum alanını seçiyoruz.

Access Arama Sihirbazı İle Tablo İlişkiler Kurma 1. Adım

Hangi tablodan almak istediğinizi seçiyoruz. FK_MUSTERI kolonu TABLO_MUSTERI tablosunun ID alanı ile ilişkilendireceğimizden TABLO_MUSTERI tablosunu seçiyoruz. İleri diyoruz.

Access Arama Sihirbazı İle Tablo İlişkiler Kurma 2. Adım

Bu adımda ilişki sonrası hangi verileri görmek istediğimizi göstereceğiz. Ben kolonların tamamını görmek istiyorum. Siz isteğinize göre belirleyebilirsiniz. Tüm kolonlar için >> işaretini seçerek kolonların tamamını seçiyoruz.

Access Arama Sihirbazı İle Tablo İlişkiler Kurma 3. Adım

Kayıtları tabloda nasıl sıralanmasını istediğimi soruyor. ID alanına göre sıralı şekilde gelsin istiyorsunuz. Siz isterseniz örneğin Adı kısmına göre sıralı da seçebilirsiniz. ID alanını seçmemin sebebi hem sayısal hem de her kayıt eklendiğinde otomatik artan sayıda olması kayıt sırasına göre listelememi sağlıyor.

Access Arama Sihirbazı İle Tablo İlişkiler Kurma 4. Adım

Sonraki adımda TABLO_MUSTERI tablosunun listesi gelecektir. Anahtar sütunu gizle (önerilen) alanı seçili olarak geliyor. Ben bu seçeneği kaldırıyorum. Gerek yok bu numara da görünsün istiyorum. İleri diyoruz.

Access Arama Sihirbazı İle Tablo İlişkiler Kurma Anahtar Sütunu Belirleme

Bu adımda ise Satış işlemi yaparken MÜŞTERİ listesi çıkacak. Ama listede birçok alan var. Bu alanlardan hangisini kolondaki seçtiğimiz veriyi tabloya kaydetsin diye sormaktadır. Biz ilişkili tablo mantığına göre ID alanı olmalıdır. Tıpkı ilişkiler bölümünde ID alanından FK_MUSTERI alanına sürüklediğimiz gibi. Buranın ilişkisini de bu adımda yapıyoruz.

Access Arama Sihirbazı İle Tablo İlişkiler Kurulacak Alanı Belirleme

TABLO_MUSTERIKARTI tablosu ile veri bütünlüğünü etkinleştirmek isteyip istemediğimizi soruyor. Amacımız zaten ilişkili tablo birbiri ile bağlantılı olsun ki uyuşmayan veriler girişi olmasın bu sebeple Veri Bütünlüğünü Etkinleştir kutucuğunu ve Kısıtlamalı Silme bölümünü seçiyoruz.

Access Arama Sihirbazı İle Tablo İlişkiler Veri Bütünlüğünü Etkinleştir

Artık Sihirbazımız tamamlanmıştır. Son diyoruz.

Access Arama Sihirbazı Onay

İşlemi Kaydetmek için Evet diyoruz. Artık TABLO_MUSTERI tablosunun verileri TABLO_SATIS tablosundaki verilerle bağlıdır.

İşleme başlarken Sayı alanını Arama Sihirbazı olarak değiştirmiştik. Gene tekrar kontrol ettiğimizde sayı olarak kalmıştır.

Access Arama Sihirbazı Tablodaki Sonuç

Farklı görmek için alt kısımdaki Arama sekmesine geliyoruz.

Access Arama Sihirbazı İle Tablodaki Satır Kaynağı Sorgusu

Bu alan normal şartlarda boş iken yapmış olduğumuz Arama Sihirbazı ile iki kolonu birbiri ile ilişkilendirmiş olduk. Bunu Satır kaynağında yazan SQL kodu ile yapmaktadır.

İkinci Yöntemin Tablo İlişkilerini Test Edelim.

Şimdi test etmek için TABLO_SATIS tablosunu açıyoruz. Yeni kayıt girişi yaparken ilişkilendirdiğimiz alanda aşağı ok çıktığını göreceksiniz. Aşağı Ok’a bastığınızda TABLO_MUSTERI tablosundaki verilerin geldiğini göreceğiz.

Access Arama Sihirbazı İlişkiler Testi

Sadece MÜŞTERİ tablosunda sadece gösterilen yani ID alanından kayıt girebiliriz artık. Kaydettiği alan ise ID alanı olarak geçtiğimiz için en başta görülen sayısal alan kaydedilecektir.

Eğer yine MÜSTERİ tablosunda olmayan kaydı girdiğimizde ise aşağıdaki gibi hata verecektir.

Access Arama Sihirbazı Testi Sonucu

Amacımıza ikinci yöntemdeki ilişkilendirme ile de ulaşmış olduk. Genelde Tablo ilişkilendirmelerde ikinci yöntem kullanabilirsiniz.

Projedeki Diğer İlişkili Alanlar

Artık eğitim ilk başında çizdiğim tablo şeklini yavaş yavaş anlayabildiğinizi umuyorum.

Aşağıda Projemizin devamlılığı açısından tüm ilişkileri bahsettiğimiz ikinci yöntemle yapmanızı rica ediyorum. Bu bölümde sadece yeşil ile bahsedilen alanı yaptık. Diğer tüm ilişkileri kurunuz.

Arama Sihirbazı ile İlişkiler kurarken dikkat etmeniz gereken Sonsuz işaretinin olduğu tablodaki kolonu açıp 1 ile gösterilen alanı çağıracaksınız.

 

Ekli dosyada tüm tablolarda ilişkilendirilmiş şekilde hazılanmıştır. Ancak yeşil ile işaretli ilişkileri siz deneyebilirsiniz.  Toplamda yaptığımız örnek ile birlikte 3 adet Arama Sihirbazı işlemi yapılması gerekiyor.

Access Proje İlişkiler Tablo Yapısı Kalan Tablolar

 

Access Dosya Download Makalede kullandığımız Access Dosyasını buradan indirebilirsiniz.

Eğitime Excelde Access Tablo Veri Aktarımı Yapmak #8 makaleden devam edin.

Excelde KAT Formülü Nedir

Soru Cevap Bölümü

Esra Sözer sordu

Excel Soruları

Merhaba google da ne kadar araştırdıysam bir türlü bulamadım.

Ürün aldığımız yurtdışı firması bize bir excel gönderdi. Excelde çizimlere formül yazmışlar formülde şu =KAT(“PDF”;””)

Bu küçük çizimlere çift tıklayınca adobe readarda pdf olarak açılacakmış fakat açılmıyor “bu nesne için ana uygulama başlatılamıyor.” hatası veriyor. Bu formülüde ilk defa duydum.

Umarım derdimi anlatabilmişimdir. Yardımcı olabilirseniz çok sevinirim.

 

Excel Cevapları

Merhaba,

Excel’de KAT Formülü bende bulamadım. Office 365’de yeni formüller geliyor be de 365 kullanıyorum ama kat formülü bu alanda da yok. Yabancı sitelerde ki fonksiyon listelerinde araştırdım göremedim.

İki ihtimal var gibi. İşlem gönderen kişi’de Excel’in Adobe eklentisi olabilir. Onun için kullanılan özel bir formül üretmiş olabilirler. Yüksek ihtimal.

 

Ya da kullanıcı özel bir formül yazmış olabilir.

Öğrenciler Seçimde Oy Kullanma Kontrolü

Soru Cevap Bölümü

MELEK sordu

Excel Soruları

Aşağıdaki doğum tarihlerine sahip öğrencilerimiz seçimlerde oy kullanabilir mi?

Seçim Tarihi : 21.6.2021

Oy Kullanabilir / Oy Kullanamaz

 

AD SOYAD DOĞUM TARİHİ YAŞ Toplam Seçmen Sayısı
BULUT YILDIRIM 9.01.2005
ÇİĞDEM ÇANKAYA 26.04.2009
ECEM ÖZTRÜK 15.09.1976
AHMET AKIN 28.05.1979
ALİ ŞEKER 13.12.1999
AYŞENUR ÖZDEMİR 23.05.2012
BETÜL ÇİÇEK 7.08.20033
BUĞÇE COŞGUN 2.11.1991
BUSE KARAAĞAÇ 2.05.1971
CEREN ÇINAR 11.11.2006
ÇAĞLAR SAĞ 11.12.2006
ÇAĞRI İNCESU 21.06.1952
EMİNE KAYIŞ 22.04.1973
EMRE ACAR 19.02.2002
ENES YILMAZ 20.05.1978
ERCAN ŞENOL 26.05.1999
ERHAN ÇINAR 7.10.2007
ESRA KILIÇ 7.11.2005
FATMA ÖZALAN 7.12.2009
FERDA KARAKUŞ 7.01.2003
FEYZA ALBAYRAK 7.02.2006

 

Excel Cevapları

Merhabalar

Aşağıdaki formülü kullanabilirsiniz.

=EĞER(ETARİHLİ(C2;BUGÜN();”y”)>18;”Oy Kullanabilir”;”Oy Kullanamaz”)

Listedeki Virgülleri Kaldırıp Sayıya Dönüştürmek

Soru Cevap Bölümü

mehmet sordu

Excel Soruları

  ,01,
  ,1,
  ,1,
  ,11,
  ,11,
  ,11,
  ,11,
  ,12,
  ,12,
  ,12,

Örnek olarak bu sayıları 0,01 / 0,1 /0,11… şeklinde excelde yazmak istiyorum ve sondaki virgülü kaldırıp ondalık sayı şeklinde düzgünce kalmasını istiyorum ne yapabilirim yardımcı olursanız sevinirim.

 

Excel Cevapları

Merhabalar,

Aşağıdaki formülle hesaplama yapabilirsiniz.

=SAYIYAÇEVİR(SOLDAN(A1;UZUNLUK(A1)-1))

 

Koşullu Biçimlendirmede VE Fonksiyonu

Koşullu Biçimlendirmede Formül ile Fonksiyonunu Kullanma

İleri Koşullu Biçimlendirme ile ilgili son konumuza geldik. Bu anlatımla İleri Koşullu Biçimlendirme başlığını bitiyoruz. İleri Excel konusuna yeni başlıyoruz tabi. Ancak sizlerden gelen sorularla örneklerle konuyu çoğaltabiliriz. Böylelikle zengin bir İleri Koşullu Biçimlendirme dokümanı elde etmiş oluruz. Bu makalemizde Koşullu Biçimlendirmede Formül ile VE Fonksiyonuna değineceğiz.

Devamını oku

Bitişik Yazıları Ayırma

Soru Cevap Bölümü

Excel Soruları

“Yeni Talep02.02.2021 15:31”

 

Vba yardımı ile yukarıda yazan yazıyı internet sitesinden excel almaktayız. Bu yazı tarih ile bitişik olarak gelmektedir. Aşağıdaki hale gelmesi noktasın yardımınızı bekliyoruz.

Not: VBA kodu ile yapabilirsek süper olur.

“Yeni Talep 02.02.2021 15:31”

Excel Cevapları

Merhaba,

Aralarında boşluk olmadığı için ayırmamız zor olabilir. Ama “Yeni Talep” kelime veya benzer birkaç olabilir böyle kararlı veri ise çözüm üretebilirim.

Mesela Yeni Talep karakteri 11 karakter olduğu için aşağıdaki şekilde ayırt edilebilir.

=SAYIYAÇEVİR(PARÇAAL(A1;11;100))

 

Olması Muhtemel örnek veriler varsa farklı yol düşünebiliriz.

error: İçerik Kopyalamaya Karşı Korulamlıdır. !!