Access İlişki Kurma
#1
access-sql-16 
Merhaba.
Excel bilgim iyi, ama Access bilgim yok denecek kadar az.
Onun için Access öğrenmeye karar verdim.
Bu işin sonu da soru sormaktan geçtiğine göre müsadenizle ben de br soru sorayım.
Örneğin başlangıç olarak bir Müşteri - Stok takip programı yapıyorum.

Müşteri Tablosu
Müşteri No
Adı Soyadı
Adresi
Telefonu

Ürün tablosu
Ürün No
Ürün Adı
Alış Fiyatı
Satış Fiyatı

Satış Tablosu
Müşteri No
Ürün No
Tarih

Müşteri Tablosundan Müşteri No ile satış Tablosundan Müşteri No ile ilişki kurmak için her ikisini veri tipi ayni olmalı.
Ancak pratikte bu mümkün değil, çünkü Müşteri tablosunun Müşteri No alanının veri tipi Otomatik sayı(Yineleme Yok), yani müşteriyi bu tabloya bir kere girmek yeterli.
Fakat Satış Tablosundaki Müşteri No alanının veri tipi Otomatik Sayı olamaz, çünkü bir müşteriye sadece tek satış değil, birçok satış yapabilirsiniz. Yani veri tipi Sayı olabilir.
Ancak bu durumda (Otomatik Sayı - Sayı) ilişki kurulamıyor.
İlişki kurulabilmesi için Müşteri Tablosundaki Müşteri No alanı veri tipini Sayı yapmak olayı çözüyor. Ancak bu durumda her yeni müşteri girişinde Access otomatik olarak sayı üretmediği için hepsini ben kendim girmem gerekiyor, yani sayı atlamamk için dönüp önceki kaydın Müşteri No'suna bakmam gerekiyor.
Ayni olay Ürün Tablosundaki Ürün No ile Satış Tablosundaki Ürün No için geçerli.
Kısacası bu durumda Accessin sunduğu Otomatik sayı kolaylığından istifade edemiyorum.
Bunun için ne yapabiliriz, nasıl yol izleyebiliriz, tavsiyeniz olacak mı.
İlşki kurmana gerek yok demeyin çünkü programın tutarlı ve kusursuz olması için gördüğüm kadarıyla ilişkiler çok önemli.
Cevap için şimdiden teşekkürler.



  Alıntı
Bu mesajı beğenenler:
#2
Sayın maytas;
Öncelikle hoşgeldiniz.
Accessin belkemiği diyecemiz tablolar arası ilişki kurmak için bir takım kuralları vardır;
1 - Eğer tablodaki alanlara girilen bilgiler tekrarlıyorsa, yani aynı bilgiler defalarca giriliyorsa ve bu bilgi değişkense, bunu ayrı bir tablo ile tanımalamak hem veritabanın boyutu ve hızı açısından hem de bilgi girişinin kolay olması açısından avantajlıdır.
2 - Örnek üzerinden gitmek gerekirse Cinsiyeti, Medeni Hali gibi terkarlayan ancak değişken olmayan bilgiler için ayrıca bir tablo tanımlanmaz.
3 - Bilgi tutarlılığı olan ilişki kurarken her iki alanın tipi aynı olmalıdır. Yani metin olarak tanımlanmış bir alan ile Sayı olarak tanımlanmış bir alan arasında ilşiki kurulamaz.
4 - Sadece veri türünün aynı olması yeterli değildir. İlişki kurulacak alanların alan boyutları da aynı olmalıdır. Yani Sayı-Uzun Tamsayı olarak tanımlanmış bir alan ile Sayı-Tamsayı olarak tanımlanmış bir lan arasında da ilişki kurulamaz. 10 karakterlik bri Metin ile 20 karekterlik bir alan arasında da ilişki kurulamaz.
5 - Eğer bilgi tutarlılığı istenen ilişki kuruluyorsa tablolardan birindeki alan birincil anahtar olmalıdır.
Örneğin: Malzeme bilgilerinin tutuludğu tabloda diğer tablolarla ilişkiyi sağlayacak olan malzeme numarası alanı birincil anahtar olarak tanımlanmalıdır.
6 - İlişkisel veri tabanlarında ilişkiler Bilgi Tutarlılığına Zorlanacak şekilde oluşturulmuşsa, asıl tabloda tanımlanmamış bir bilgi diğer tabloya girilemez.
Örneğin: Malzeme bilgiler tablosu ile satış bilgileri tablosu arasında bir ilişki varsa malzeme bilgiler tablsounda bulunmayan bir malzemenin satışı, satış bilgileri tablosundan yapılamaz. Önce malzeme bilgileri tablosunda satılacak malzemeler tanınmalıdır.
Kolaygelsin.



  Alıntı
Bu mesajı beğenenler:
#3
Alıntı: İlşki kurmana gerek yok demeyin çünkü programın tutarlı ve kusursuz olması için gördüğüm kadarıyla ilişkiler çok önemli.

Merhaba..

"İlişki kurmayın" diyen biriyle tüm ilişkinizi kopartın derim bende.. Goofy

Müşteri tablosundaki otomatik sayı alanı ile Satıl tablosundaki Sayı veri tipindeki müşteri alanının birbiri ile bağlantı kurmaması olabilcek nedenlerden biri tablo içerisinde benzersizliği bozan bir kaydın bulunması olabilir..



  Alıntı
Bu mesajı beğenenler:
#4
Sayın Aykay mesajınızı fark etmemişim.. Verdiğiniz bilgiler ve ayrıntılı cavabınız için teşekkürler..



  Alıntı
Bu mesajı beğenenler:
#5
Hoşbulduk,
Sayın Akay ve Sayın Taruz,hızlı cevaplarınız için teşekkür ederim.
Ayrıca Sayın Aykay çok yararlı bilgiler paylaşmış.
Bu cevap üzerine aklıma bir soru geldi.
Bilgi tutarlığını zorla girilmiş ilişkilerde birincil tabloda olmayan veri yabancı tabloya girilemez, bunu üzerinde çalıştığımı çalışmamda da gördüm.
Peki diyelim ki malzeme girişi yaparken Malzeme tablosunda taımlı olmayan bir malzeme çıktı.
Bilgi tutarlığı zorla durumunda önce bunun Malzeme tablosuna girilmesi lazım.
Farkettiğim üzere bilgi tutarlığı zorla seçili değil ise ana tabloda olmayan veriyi girebiliyoruz.
Peki bu girdiğimiz veriyi giriş esnasında nasıl ayni zamanda ana tabloya girebiliriz?
Bunun bir yolu var mıdır?
Exceldeki bilgilerime dayanarak muhtemelen bu VBA kodlarla mümkün diyeceksiniz gibime geliyor.

Pardon az daha unutuyordum. başta yazdığım problemi çözdüm(her ikisini de Uzun Tamsayı yapınca oldu) ve gerekli ilişkileri düzenledim.

[Resim: image.php?id=8184Iliskiler.GIF]
[Resim: image.php?id=8184Iliskiler.GIF]



  Alıntı
Bu mesajı beğenenler:
#6
Merhaba sayın maytas,
Sitemize hoşgeldiniz,
Listede yokken kod kısmına aşağıdaki kod ile,
ekleyeceginizi sorar evet derseniz ekler, hayır derseniz eklemez,
ama acılır kutunun özeliklerinden , Listeye sınırı Evet yapacaksınız.
Tablo adı:Gruplar
alan adı:GRUB KAYDI

Visual Basic
  1. Private Sub Grup_NotInList(NewData As String, Response As Integer)
  2. Dim strsql As String, X As Integer
  3. X = MsgBox("Girilen Grup Listede Yok. Listeye Eklensin mi??", vbYesNo)
  4. If X = vbYes Then
  5.  
  6. strsql = "Insert Into GRUB KAYDI ([Gruplar]) values ('" & NewData & "')"
  7.  
  8. CurrentDb.Execute strsql, dbFailOnError
  9. Response = acDataErrAdded
  10. Else
  11. Response = acDataErrContinue
  12. End If
  13. End Sub





  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Acces Ile C# Arasındaki Ilişki unutulmaza 5 504 07-05-2023, 15:12
Son Mesaj: unutulmaza
  [FORM] Formda Kayıt Ve Ilişki Oluşturma, Kayıtların Metin Kutusunda Gözükmesi fx41 26 2.205 12-10-2022, 11:00
Son Mesaj: dsezgin
  Tabloları Ilişki Olarak Yedekleme Kopyalama bibib 0 495 15-03-2021, 21:02
Son Mesaj: bibib
  çoka çok Ilişkili Iki Tabloda, Karmaşık Ilişki, Bağlantı tarkanaykın 3 682 21-10-2020, 17:10
Son Mesaj: tarkanaykın
  [SORGU] çoklu Ilişki Uygulama Sorunu Sancaktar 2 608 05-10-2020, 19:46
Son Mesaj: Sancaktar
  [TABLO] Türe Bağlı Olarak Proje Bazlı Belgeler Için Tablolar Arası Ilişki Nasıl Olmalı? salcasel 5 1.073 30-11-2019, 14:11
Son Mesaj: salcasel
access-sql-18 [SORGU] Tablolar arasındaki ilişki mantığı fatihkrn27 2 1.498 15-04-2017, 20:14
Son Mesaj: fatihkrn27
  [TABLO] iki tablo arasında birden fazla ilişki kurma orcunerkek54 5 2.968 12-11-2016, 23:07
Son Mesaj: onur_can

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi