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.
Liste Kutusu Veri Filtreleme İle Arama
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.
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.
Sağolun zamanınızı ayırdığınız için.
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 gibiSELECT [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));
Tamamdır, yardımlarınız için teşekkürler.
şu anda tam olarak istediğiniz gibi çalışıyor mu?
Konuyu Okuyanlar: 1 Ziyaretçi