Herkese Selam,
Ekte gönderdiğim örnekte "Frm_Emlak_Ara_Bul" üzerindeki alanlardaki kriter değerlerine göre "Tbl_Emlak_Alici_Satici_Ilan_Kayit" tablosundaki verileri sorgulayıp "Frm_Emlak_Ara_Bul_List" üzerinde kriterlere uygun olanları göstermek istiyorum. Bu formun kaynağındaki sorguya ilgili kriterleri de yazdım ama maalesef bana hiç bir sonuç vermedi. Bildiğim kadarı ile ölçütlerde herhangi bir hata yok bir kaç defa kontrol ettimyardımızına ihtiyacım var.
teşekkür ederim.
Merhaba, tabloda Depozito Miktarı alanı boş olanlara 0 yazarak dener misin?
arama formunuz bütün alanların varlığını sorguladığından değer girmediğiniz alanlar için tabloda boş değere sahip kayıtları göstermeye çalışıyor olabilir
sorgunuzu her alanı kontrol edip eğer sadece doluysa sorguya ekleyecek şekilde yeniden tanımlamanız gerekebilir.
farklı yöntemler de kullanılabilir belki ama ben aşağıdaki yöntemi kullandım
1 - ilk önce arama sayfasında yer alan tüm arama kutuları için
VeriAra etiketi (Im/Tag olarak da geçer: nesne özelliklerinde diğer sekmesinde en altta) ekledim
2 - sonrada formdaki tüm arama kutularını tarayıp boş olmayanları aşağıdaki kodla sorguya ekleyip liste formunu bu kodla çağırdım
'hy___________________________________________________
Dim Ctl As Control
Dim txtSQLAlan, txtKriter, txtSql As String
txtSQLAlan = ""
txtKriter = ""
txtSql = ""
For Each Ctl In Me
If Ctl.Tag <> "VeriAra" Then GoTo 10
If Len(Nz(Ctl, "")) > 0 Then
If Ctl.Name = "Ara33" Then txtSQLAlan = "((Kira)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara34" Then txtSQLAlan = "((Kira)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara35" Then txtSQLAlan = "((EmlakFiyati)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara36" Then txtSQLAlan = "((EmlakFiyati)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara01" Then txtSQLAlan = "((EmlakTipi)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara04" Then txtSQLAlan = "((BinaYasi)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara05" Then txtSQLAlan = "((BinaYasi)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara06" Then txtSQLAlan = "((BrutM2)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara07" Then txtSQLAlan = "((BrutM2)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara08" Then txtSQLAlan = "((NetM2)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara09" Then txtSQLAlan = "((NetM2)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara10" Then txtSQLAlan = "((OdaSayisi)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara11" Then txtSQLAlan = "((OdaSayisi)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara12" Then txtSQLAlan = "((BanyoSayisi)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara13" Then txtSQLAlan = "((BanyoSayisi)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara14" Then txtSQLAlan = "((BalkonSayisi)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara15" Then txtSQLAlan = "((BalkonSayisi)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara16" Then txtSQLAlan = "((KatDurumu)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara17" Then txtSQLAlan = "((KatDurumu)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara18" Then txtSQLAlan = "((YakitTipi)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara19" Then txtSQLAlan = "((IsinmaSekli)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara20" Then txtSQLAlan = "((Asansor)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara22" Then txtSQLAlan = "((EsyaliEsyasiz)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara23" Then txtSQLAlan = "((KatMulkiyeti_Irtifaki)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara24" Then txtSQLAlan = "((KrediyeUygunluk)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara25" Then txtSQLAlan = "((TakasaUygunluk)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara26" Then txtSQLAlan = "((KullanimDurumu)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara27" Then txtSQLAlan = "((Depozito)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara28" Then txtSQLAlan = "((DepozitoMiktari)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara29" Then txtSQLAlan = "((DepozitoMiktari)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara30" Then txtSQLAlan = "((SiteIci)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara31" Then txtSQLAlan = "((S_Sehir)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara32" Then txtSQLAlan = "((Ilce)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara37" Then txtSQLAlan = "((IslemDurumu)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara17" Then txtSQLAlan = "((KatDurumu)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
txtKriter = IIf(Trim(txtKriter) = "", txtSQLAlan, txtKriter & " and " & txtSQLAlan)
End If
10
Next Ctl
txtSql = "SELECT * FROM Tbl_Emlak_Alici_Satici_Ilan_Kayit " & IIf(Trim(txtKriter) = "", ";", " WHERE (" & txtKriter & ");") 'kriter boş ise ; değilse....
DoCmd.OpenForm "Frm_Emlak_Ara_Bul_List", acNormal
Form_Frm_Emlak_Ara_Bul_List.RecordSource = txtSql
Im/Tag ekleme
(05/03/2020, 13:15)berduş yazdı: [ -> ]arama formunuz bütün alanların varlığını sorguladığından değer girmediğiniz alanlar için tabloda boş değere sahip kayıtları göstermeye çalışıyor olabilir
sorgunuzu her alanı kontrol edip eğer sadece doluysa sorguya ekleyecek şekilde yeniden tanımlamanız gerekebilir.
farklı yöntemler de kullanılabilir belki ama ben aşağıdaki yöntemi kullandım
1 - ilk önce arama sayfasında yer alan tüm arama kutuları için VeriAra etiketi (Im/Tag olarak da geçer: nesne özelliklerinde diğer sekmesinde en altta) ekledim
2 - sonrada formdaki tüm arama kutularını tarayıp boş olmayanları aşağıdaki kodla sorguya ekleyip liste formunu bu kodla çağırdım
'hy___________________________________________________
Dim Ctl As Control
Dim txtSQLAlan, txtKriter, txtSql As String
txtSQLAlan = ""
txtKriter = ""
txtSql = ""
For Each Ctl In Me
If Ctl.Tag <> "VeriAra" Then GoTo 10
If Len(Nz(Ctl, "")) > 0 Then
If Ctl.Name = "Ara33" Then txtSQLAlan = "((Kira)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara34" Then txtSQLAlan = "((Kira)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara35" Then txtSQLAlan = "((EmlakFiyati)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara36" Then txtSQLAlan = "((EmlakFiyati)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara01" Then txtSQLAlan = "((EmlakTipi)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara04" Then txtSQLAlan = "((BinaYasi)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara05" Then txtSQLAlan = "((BinaYasi)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara06" Then txtSQLAlan = "((BrutM2)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara07" Then txtSQLAlan = "((BrutM2)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara08" Then txtSQLAlan = "((NetM2)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara09" Then txtSQLAlan = "((NetM2)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara10" Then txtSQLAlan = "((OdaSayisi)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara11" Then txtSQLAlan = "((OdaSayisi)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara12" Then txtSQLAlan = "((BanyoSayisi)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara13" Then txtSQLAlan = "((BanyoSayisi)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara14" Then txtSQLAlan = "((BalkonSayisi)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara15" Then txtSQLAlan = "((BalkonSayisi)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara16" Then txtSQLAlan = "((KatDurumu)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara17" Then txtSQLAlan = "((KatDurumu)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara18" Then txtSQLAlan = "((YakitTipi)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara19" Then txtSQLAlan = "((IsinmaSekli)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara20" Then txtSQLAlan = "((Asansor)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara22" Then txtSQLAlan = "((EsyaliEsyasiz)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara23" Then txtSQLAlan = "((KatMulkiyeti_Irtifaki)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara24" Then txtSQLAlan = "((KrediyeUygunluk)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara25" Then txtSQLAlan = "((TakasaUygunluk)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara26" Then txtSQLAlan = "((KullanimDurumu)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara27" Then txtSQLAlan = "((Depozito)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara28" Then txtSQLAlan = "((DepozitoMiktari)>=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara29" Then txtSQLAlan = "((DepozitoMiktari)<=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara30" Then txtSQLAlan = "((SiteIci)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara31" Then txtSQLAlan = "((S_Sehir)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara32" Then txtSQLAlan = "((Ilce)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara37" Then txtSQLAlan = "((IslemDurumu)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
If Ctl.Name = "Ara17" Then txtSQLAlan = "((KatDurumu)=[Formlar]![Frm_Emlak_Ara_Bul]![" & Ctl.Name & "]) "
txtKriter = IIf(Trim(txtKriter) = "", txtSQLAlan, txtKriter & " and " & txtSQLAlan)
End If
10
Next Ctl
txtSql = "SELECT * FROM Tbl_Emlak_Alici_Satici_Ilan_Kayit " & IIf(Trim(txtKriter) = "", ";", " WHERE (" & txtKriter & ");") 'kriter boş ise ; değilse....
DoCmd.OpenForm "Frm_Emlak_Ara_Bul_List", acNormal
Form_Frm_Emlak_Ara_Bul_List.RecordSource = txtSql
Im/Tag ekleme
Sayın berduş ve Sayın ozanakkaya destekleriniz için teşekkür ederim. İşlerimin yoğunluğundan denemeleri yapamadım ama bugün denemeleri yapıp dönüş yapacağım.
Sağlıcakla kalın.
Yalniz denemelerimde boş formda tüm kayıtları gösterirken sadece birkaç alanı doldurdugumda yine kriterler uygun kayitlari gosterdi. Hangi durumda sorun cikti? Hangi degerleri girdiginizde gostermesi gereken kayitlari gostermedi?