MS Access tekrar eden veri ?

blazedanger35

Doçent
Katılım
3 Nisan 2008
Mesajlar
609
Reaksiyon puanı
3
Puanları
0
Merhabalar , vize sınavı için video market projesi yapmak zorundayım.

Şuan da vb.net te form a bir datagrid attım.
Filmleri burada listeletiyorum.

Datagrid üzerinde bir textbox ta arama yapılacak , film türü , oyuncu , yönetmen vs.

Her filme tek bir oyuncu atadığımda sorun çıkmıyor fakat , bir filme 3-4 oyuncu atayınca o filmi tekrarlıyor.

Örnekte , Berlin Kaplanı filmine Ata Demirer'e ek olarak , Necati Bilgiç ve Nihal Yalçın ı eklediğimde resimdeki gibi listeliyor.

SQL SORGUSU =

Kod:
SELECT Film.FilmAdi, Oyuncu.AdSoyad, Tur.Ad, MedyaTuru.MedyaFROM Tur INNER JOIN ((MedyaTuru INNER JOIN (Dil INNER JOIN (Oyuncu INNER JOIN ((Film INNER JOIN Video ON Film.ID = Video.FilmNo) INNER JOIN FilmOyuncu ON Film.ID = FilmOyuncu.Film) ON Oyuncu.ID = FilmOyuncu.Oyuncu) ON Dil.ID = Film.Dili) ON MedyaTuru.ID = Video.Format) INNER JOIN FilmTuru ON Film.ID = FilmTuru.Film) ON Tur.ID = FilmTuru.Tur;



Bunu nasıl engelleyebilirim ?

1-

dis1.png



2-

dis2.png


3- SIKINTI YAŞADIĞIM ALAN BURASI :

dis3.png
 

aslanpayi

Doçent
Katılım
12 Ağustos 2009
Mesajlar
523
Reaksiyon puanı
1
Puanları
0
Bunun olması doğal ki. Oyuncu sayısı kadar listeleme oldu. Bi yanlışlık göremiyorum. Tam olarak yapmak istediğin nedir?
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
Tekil sonuç istiyorsan istediğin bir alana distinct uygulayabilirsin...
 

aslanpayi

Doçent
Katılım
12 Ağustos 2009
Mesajlar
523
Reaksiyon puanı
1
Puanları
0
Tekil sonuç istiyorsan istediğin bir alana distinct uygulayabilirsin...

iş adı soyadında bitiyor ve bunda daha tekil sonuç dönmez. Satırların hepsi birbirinden farklı.

Tabi sorgudan sütun çıkartırsa o ayrı.
 

blazedanger35

Doçent
Katılım
3 Nisan 2008
Mesajlar
609
Reaksiyon puanı
3
Puanları
0
Bunun olması doğal ki. Oyuncu sayısı kadar listeleme oldu. Bi yanlışlık göremiyorum. Tam olarak yapmak istediğin nedir?

Aslında yanlış bir yol izliyor gibiyim.

Ben oyuncu aratınca sonuç datagrid de listelensin diye uğraşıyordum.

Oyuncuyu göstermeden arka planda aratarak listeletmek daha doğru sanırım.

Ara tıklanınca sql cumlesi tanımlayıp data reader ile datagrid i fill ile doldurmak daha mantıklı duruyor şuan.

Mesela , select film.filmadi , film.suresi from film where oyuncu.ad=textbox1.text gibi (sql cümlesi doğru değildir örnek amaçlı sadece.)




Tekil sonuç istiyorsan istediğin bir alana distinct uygulayabilirsin...

Distinct ile yukarıdaki sonçta bir fark olmadı.

--- Mesaj Güncellendi ---

Oyuncu göstermeden bu tarz sorguyla filtre yapıp listeletmek mi daha kolay olur ?

(Bu sorgu da nette denk geldiğim bir örnek , düzenleyip deneyeceğim.)

StrSorgu = "SELECT DISTINCT a.FilmNo, b.OyuncuNo, c.YonetmenNo, d.YapimciNo,
a.FilmAdi, b.Adi AS Oyuncu, c.Adi AS Yonetmen, d.Adi AS Yapimci FROM Film a, Oyuncu b,
Yonetmen c, Yapimci d, OyuncuFilmleri e WHERE a.FilmNo = e.FilmNo AND e.OyuncuNo =
b.OyuncuNo AND a.YonetmenNo = c.YonetmenNo AND a.YapimciNo = d.YapimciNo "
If Not StrAramaBosmu Then
StrSorgu += " AND a.FilmAdi LIKE '" & TxtAranan.Text & "%'"
 
Katılım
31 Aralık 2007
Mesajlar
17,486
Reaksiyon puanı
189
Puanları
243
Ne istediğini anlamadım açıkcası o yüzden bir şey diyemiyorum...
 

aslanpayi

Doçent
Katılım
12 Ağustos 2009
Mesajlar
523
Reaksiyon puanı
1
Puanları
0
Aslında yanlış bir yol izliyor gibiyim.

Ben oyuncu aratınca sonuç datagrid de listelensin diye uğraşıyordum.

Oyuncuyu göstermeden arka planda aratarak listeletmek daha doğru sanırım.

Ara tıklanınca sql cumlesi tanımlayıp data reader ile datagrid i fill ile doldurmak daha mantıklı duruyor şuan.

Mesela , select film.filmadi , film.suresi from film where oyuncu.ad=textbox1.text gibi (sql cümlesi doğru değildir örnek amaçlı sadece.)

Bu cümle oyuncunun tüm filmlerini sana listeler. Zaten istediğin de bu değil miydi?
 

blazedanger35

Doçent
Katılım
3 Nisan 2008
Mesajlar
609
Reaksiyon puanı
3
Puanları
0
abi access i bıraktım , visual studio içinden veritabanı oluşturdum.

3 checkbox 1 datagrid var, seçili checkbox a göre arama yapıyor.

film ismi , türü , dil ine göre.

bunları yaptığım gibi oyuncu aramayı dahil edemedim.

mesela datagrid e add query diyorum , dil üstündeyken filter ına , LIKE @Dil + '%' yazıyorum.

Textbox ın change ine de yazılan ifadeye göre datagrid i fill ettiriyorum.

Ama oyuncuyu dahil edemedim.



http://dl.dropbox.com/u/11820177/WindowsApplication35.7z

--- Mesaj Güncellendi ---

Bu cümle oyuncunun tüm filmlerini sana listeler. Zaten istediğin de bu değil miydi?

İstediğim tam anlamıyla bu.
 
Üst