AccessTr.neT

Tam Versiyon: Tek Sorguda İsteğe Bağlı Denetimlerle Arama Yapma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Merhabalar, Acceste bir formla ilgili sorgu oluşturdum. sorgu kriterini hem grup adı hem tarih hemde kişi numarası olacak ancak, zorunlu olsun istemiyorum 3 ü de olabilir 1 i de olabilir.  3 ayrı açılan kutu var.  MEcbur hepsini girmesem arama yapmıyor. Veya kısmına birtane açılan kutu eklesemde istediğim olmuyor.  acaba bunu nasıl yapabilirm. yardımcı olursanız sevinirim. 

İsteğim hepsini seçmesemde seçtiğim bir kritere göre arama yapsın. yoksa her açılan kutunu yanına bir buton koyup  bir kritere göre veya 2 kritere göre vs. diyerek üç tane sorgu yapmam gerecek butonla bunları çalıştıracağım, bunu istemiyorum.
If IsNull(Me.MUSTERI) Then mus = "[SIPARIS_LISTESI].MUSTERI" Else mus = "'" & Me.MUSTERI & "'" 'açılan kutu alanları bunlar olsun. me.MUSTERI olan kısımları mus adı altında tanımladım
If IsNull(Me.PARTINO) Then pno = "[PARTILENENLER].PARTI_NO" Else pno = Me.PARTINO  ' bunlarda aynı mesela bu PARTI_NO, pno diye tanımladım.
If IsNull(Me.MSIPNO) Then MSIP = "[SIPARIS_LISTESI].SIPNO" Else MSIP = "'" & Me.MSIPNO & "'" 'bu msıpno MSIP diye tanımladım.
If IsNull(Me.RENKNO) Then RNO = "[SIPARIS_LISTESI].RENK_NO" Else RNO = "'" & Me.RENKNO & "'" ' renkno

'tarih sanırım iki tane olacak, birisi ilk tarih birisi son tarih olduğunu varsay metinkutuları da ILKTARIH, SONTARİH gibi

If IsNull(Me.ILKTARIH) Then Me.ILKTARIH = Date
        If IsNull(Me.SONTARIH) Then Me.SONTARIH = Date
        If CDate(Me.ILKTARIH) > CDate(Me.SONTARIH) Then
                Response = MsgBox("Son Tarih, İlk Tarihten Büyük Olmalıdır..", 48, "Hata!")
                DoCmd.GoToControl "ILKTARIH"
        Exit Sub
        End If
ILKTAR = ">=#" & Month(Me.ILKTARIH) & " / " & Day(Me.ILKTARIH) & " / " & Year(Me.ILKTARIH) & "#"
SONTAR = "<=#" & Month(Me.SONTARIH) & " / " & Day(Me.SONTARIH) & " / " & Year(Me.SONTARIH) & "#"

Me.Liste0.RowSource = "SELECT SIPARIS_LISTESI.MUSTERI, PARTILENENLER.PARTI_NO, SIPARIS_LISTESI.SIPNO, SIPARIS_LISTESI.RENK_NO, SIPARIS_LISTESI.RENK, SIPARIS_LISTESI.CINSI, PARTILENENLER.PAR_KG, PARTILENENLER_DURUM.TERMIN, PARTILENENLER_DURUM.DURUM_ZAMANI, [DURUM_ZAMANI]-[TERMIN] AS GEÇEN_SÜRE FROM (SIPARIS_LISTESI INNER JOIN PARTILENENLER ON SIPARIS_LISTESI.SIPARISNO = PARTILENENLER.SIPARIS_NO) INNER JOIN PARTILENENLER_DURUM ON PARTILENENLER.PARTI_NO = PARTILENENLER_DURUM.PARTI_NO WHERE (PARTILENENLER_DURUM.TARIH" & ILKTAR & ") And (PARTILENENLER_DURUM.TARIH" & SONTAR & ") AND (SIPARIS_LISTESI.MUSTERI=" & mus & ") AND (PARTILENENLER.PARTI_NO=" & pno & ") AND (SIPARIS_LISTESI.RENK_NO= " & RNO & " ) AND (SIPARIS_LISTESI.SIPNO= " & MSIP & " ) AND (PARTILENENLER_DURUM.DURUMU='Sevk Edildi') ORDER BY PARTILENENLER.PARTI_NO"
Me.Liste0.Requery


End Sub

bahsettiğm gibi kullanabilirsin.
yukarıdaki 
mus, pno, msıp,RNO ları açılan kutulara tanımla, 

denemeni tavsiye ederim,
örnek dosyadan da yararlanabilir.
GÜNLÜK SATIŞ İZLEME FORMU
ben böyle kullanıyorum.
Merhaba,
Ekteki dosyayı incelemenizi tavsiye ederim.
ÇOK TEŞEKKRÜ EDERİM HOCALARIM ELİNİZE SAĞLIK İŞİME YARADI ÖRNEKLER