Skip to main content

AccessTr.neT


Liste Kutusu Veri Filtreleme İle Arama

Liste Kutusu Veri Filtreleme İle Arama

#7
Bende 8000 kayıt var bunların çoğunda altbirim yazılı değil, hepsi butonuna basınca tüm personel değilde sadece bu üç açılan kutunun dolu olduğu (PRSKYT tablosunda; kuruluş, birim, altbirim) isimler listeleniyor. Aynı şekilde örneğin Su Ürünleri Fakültesi yazınca o kuruluştaki isimler gelmeli, birim ve altbirim belirtmesem bile, burda  boş geliyor. Su Ürünlerinde çalışan yokmuş gibi.

Teşekkürler ilginize.
Cevapla
#8
Sorununuzu tam olarak anlatmak ve ornegi uygun şekilde yüklemek sizin sorumlulugunuzda, tablodaki kriterlerin hepsini silip kritersiz çağırdığımda tek kayit geliyordu ben de ona göre yaptım son açıklamanızı en başta yapsaydınız belki çözüme daha çabuk ulasilirdi.
Cevapla
#9
Haklısınız, bu arada çalışma altbirimi tablosunu liste kutusundan kaldırıp altbirim açılan kutusunu etkisiz hale getirince verdiğiniz kodlar çalışıyor. Altbirimi (bazı çalışanlar da belirtilmemişken) filtrelemeye dahil ettiğimizde sorun çözümlenmiş olacak.

Sağolun zamanınızı ayırdığınız için.
Cevapla
#10
aşağıdaki gibi dener misiniz?
SELECT [Adi] & " " & [Soyadi] AS Adı_Soyadı, PRSKYT.KadroUnvan, Kuruluslar.CalısmaKurulus, Birimler.CalismaBirim, Altbirimler.CalismaAltBirim
FROM Kuruluslar RIGHT JOIN (Birimler RIGHT JOIN (Altbirimler RIGHT JOIN PRSKYT ON Altbirimler.CAltbrm_id = PRSKYT.CalismaAltBirim) ON Birimler.CBrm_id = PRSKYT.CalismaBirim) ON Kuruluslar.CKrls_id = PRSKYT.CalısmaKurulus
GROUP BY [Adi] & " " & [Soyadi], PRSKYT.KadroUnvan, Kuruluslar.CalısmaKurulus, Birimler.CalismaBirim, Altbirimler.CalismaAltBirim, Kuruluslar.CKrls_id, Birimler.CBrm_id, Altbirimler.CAltbrm_id
HAVING ((([Adi] & " " & [Soyadi]) Like "*" & [Formlar]![Personel Arama]![M1] & "*") AND ((PRSKYT.KadroUnvan) Like "*" & [Formlar]![Personel Arama]![M2] & "*") AND ((Kuruluslar.CKrls_id) Like IIf(Len([Formlar]![Personel Arama]![M3])>0,[Formlar]![Personel Arama]![M3],"*") Or (Kuruluslar.CKrls_id) Is Null) AND ((Birimler.CBrm_id) Like IIf(Len([Formlar]![Personel Arama]![M4])>0,[Formlar]![Personel Arama]![M4],"*") Or (Birimler.CBrm_id) Is Null) AND ((Altbirimler.CAltbrm_id) Like IIf(Len([Formlar]![Personel Arama]![M5])>0,[Formlar]![Personel Arama]![M5],"*") Or (Altbirimler.CAltbrm_id) Is Null));
yada eğer personel tablosunda her personelden sadece bir tane varsa aşağıdaki gibi
SELECT [Adi] & " " & [Soyadi] AS Adı_Soyadı, PRSKYT.KadroUnvan, Kuruluslar.CalısmaKurulus, Birimler.CalismaBirim, Altbirimler.CalismaAltBirim
FROM Kuruluslar RIGHT JOIN (Birimler RIGHT JOIN (Altbirimler RIGHT JOIN PRSKYT ON Altbirimler.CAltbrm_id = PRSKYT.CalismaAltBirim) ON Birimler.CBrm_id = PRSKYT.CalismaBirim) ON Kuruluslar.CKrls_id = PRSKYT.CalısmaKurulus
WHERE ((([Adi] & " " & [Soyadi]) Like "*" & [Formlar]![Personel Arama]![M1] & "*") AND ((PRSKYT.KadroUnvan) Like "*" & [Formlar]![Personel Arama]![M2] & "*") AND ((Kuruluslar.CKrls_id) Like IIf(Len([Formlar]![Personel Arama]![M3])>0,[Formlar]![Personel Arama]![M3],"*") Or (Kuruluslar.CKrls_id) Is Null) AND ((Birimler.CBrm_id) Like IIf(Len([Formlar]![Personel Arama]![M4])>0,[Formlar]![Personel Arama]![M4],"*") Or (Birimler.CBrm_id) Is Null) AND ((Altbirimler.CAltbrm_id) Like IIf(Len([Formlar]![Personel Arama]![M5])>0,[Formlar]![Personel Arama]![M5],"*") Or (Altbirimler.CAltbrm_id) Is Null));
Cevapla
#11
Tamamdır, yardımlarınız için teşekkürler.
Cevapla
#12
şu anda tam olarak istediğiniz gibi çalışıyor mu?
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task