Açıkçası sorunuzu o kadar karışık ifade ediyorsunuz ki önce ne demek istedi diye çözmeye uğraşıyorum ve anladım mı ondan bile emin değilim. Sorgunuzdaki OR ifadesinin mantığı şudur: eğer iki koşuldan biri doğruysa True (Access’te -1), ikisi de yanlışsa False (0) döner. Eğer alanlardan biri boş/null ise, Access Null döndürür ki bu yüzden sorgunuzda boş sütunlar çıkıyor. NZ ile null değerleri kontrol etmelisiniz.
SELECT
Tablo3.SN, Tablo3.Kd, Tablo3.Tarih, Tablo3.DisN, Tablo3.Yap_is, Tablo3.isl_Sr, Tablo3.Rand_Ta, Tablo3.isl_Tar, Tablo3.Acıklm, Tablo3.Sa, IIf((Nz([Rand_Ta]-[Tarih],9999) <= [isl_Sr]) Or (Nz([isl_Tar]-[Tarih],9999) <= [isl_Sr]), "Yeşil", "Kırmızı") AS Durum
FROM Tablo3;
bu tip sorunlarda önce her iki koşulu ayrı ayrı değerlendirip doğru sonuç alıp almadığınızı görün sonra birleştirin.