Liste Kutusu Veri Filtreleme İle Arama

1 2 3
21/03/2020, 23:08

mgunes

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.
21/03/2020, 23:16

berduş

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.
22/03/2020, 00:27

mgunes

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.
22/03/2020, 11:07

berduş

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));
22/03/2020, 12:12

mgunes

Tamamdır, yardımlarınız için teşekkürler.
22/03/2020, 12:14

berduş

şu anda tam olarak istediğiniz gibi çalışıyor mu?
1 2 3