Form Üzerinden Birden Fazla Rapordan Veri Süzme-filtreleme

1 2 3 4
16/10/2018, 13:59

Oğuz Türkyılmaz

(16/10/2018, 08:29)ozanakkaya yazdı: Set qdf2 = CurrentDb.QueryDefs("srg_raporverileri")

kodunu

Set qdf2 = CurrentDb.QueryDefs("SRG_PORTFOY")

kodu ile değiştir. srg_raporverileri sorgusunu sil, butonun tıklandığında olayına da, R_002_PORTFOY isimli raporun açılması için,

DoCmd.OpenReport "R_002_PORTFOY", acViewPreview, , , acWindowNormal

kodu ekle. Bu arada, komut butonları yerine seçenek grubu kullanırsan daha kolay yaparsın. Butonların tıklandığında olaylarındaki kod biraz karışık.

Select Case crc_emlaktipi
    
    Case 1
    
    GEmlakTipi = "KONUT"
    Case 2
    
    GEmlakTipi = "İŞYERİ"
    
    Case 3
    
    GEmlakTipi = "ARSA"
    
    End Select

Bu kod gibi yazacağımı anladım ama nasıl ve nereye bağlayacağımı çözemedim. İfadelerim yanlış olabilir umarım ne demek istediğimi doğru anlatabiliyorumdur. Kod yazanların jargonuna alışmak benim için biraz zaman alacak zamanla sanırım daha iyi ifade etmeyi başarabilirim.
16/10/2018, 14:21

ozanakkaya

Emlak tipi ile ilgili kısım


    Select Case crc_emlaktipi
    
    Case 1
    
    GEmlakTipi = "KONUT"
    Case 2
    
    GEmlakTipi = "İŞYERİ"
    
    Case 3
    
    GEmlakTipi = "ARSA"
    
    End Select


strWhere = strWhere & "([kategori] = """ & GEmlakTipi & """) AND "

Emlak türü için;

    Select Case crc_emlakturu
    
    Case 1
    
    GEmlakTuru = "KİRALIK"

    Case 2
    
    GEmlakTuru = "SATILIK"
    
    Case 3
    
    GEmlakTuru = "DEVREN KİRALIK"

    Case 4
    
    GEmlakTuru = "DEVREN SATILIK"
    
    End Select


strWhere = strWhere & "([tablodakialan] = """ & GEmlakTuru & """) AND "


koddaki crc_emlakturu, emlak türünün seçildiği seçenek grubunun adı, tablodakialan ise verilerin bulunduğu tablodaki alanın adı.

crc_emlakturu isimli seçenek grubunda satılık'ı seçerseniz GEmlakTuru değişkenine "SATILIK" değeri atanacaktır.
16/10/2018, 21:11

Oğuz Türkyılmaz

(16/10/2018, 14:21)ozanakkaya yazdı: Emlak tipi ile ilgili kısım


    Select Case crc_emlaktipi
    
    Case 1
    
    GEmlakTipi = "KONUT"
    Case 2
    
    GEmlakTipi = "İŞYERİ"
    
    Case 3
    
    GEmlakTipi = "ARSA"
    
    End Select


strWhere = strWhere & "([kategori] = """ & GEmlakTipi & """) AND "

Emlak türü için;

    Select Case crc_emlakturu
    
    Case 1
    
    GEmlakTuru = "KİRALIK"

    Case 2
    
    GEmlakTuru = "SATILIK"
    
    Case 3
    
    GEmlakTuru = "DEVREN KİRALIK"

    Case 4
    
    GEmlakTuru = "DEVREN SATILIK"
    
    End Select


strWhere = strWhere & "([tablodakialan] = """ & GEmlakTuru & """) AND "


koddaki crc_emlakturu, emlak türünün seçildiği seçenek grubunun adı, tablodakialan ise verilerin bulunduğu tablodaki alanın adı.

crc_emlakturu isimli seçenek grubunda satılık'ı seçerseniz GEmlakTuru değişkenine "SATILIK" değeri atanacaktır.

Ozan Bey seçenek grubu başlık isimlerini portföy tablosundaki alan isimleri ile aynı yaptım  ve kodda adı geçen yerleride aşağıdaki şekilde değiştirdim. Fakat çalıştırdığımda sorgudaki alanlara baktığımda kategori ve tipi değerlerinin boş olduğunu görüyorum. Birebir herşeyi aynı yaptım fakat hata nerede bulamıyorum. Kodu incelermisiniz lütfen. 
16/10/2018, 21:55

ozanakkaya

Uygulamanızı inceleyemeyeceğim. Kullandığınız kodu yazın.
16/10/2018, 23:20

Oğuz Türkyılmaz

(16/10/2018, 21:55)ozanakkaya yazdı: Uygulamanızı inceleyemeyeceğim. Kullandığınız kodu yazın.

Bu kodu çalıştırdığımda başvuru sorgusu bozulup resimde görüldüğü şekle bürünüyor. Ben sorguyu tekrar düzeltip sonuçları göster dediğimde sorgu yine bozuluyor ve rapor boş bir şekilde ekrana geliyor.

Dim qdf2 As DAO.QueryDef

Set qdf2 = CurrentDb.QueryDefs("SRG_PORTFOY")

GSorgum = "SELECT * FROM TBL_PORTFOY"

If crc_musteritipi = 1 Then

strWhere = strWhere & "([musteritipi] = ""ALICI"") AND "

Else

strWhere = strWhere & "([musteritipi] = ""SATICI"") AND "

End If

    Select Case crc_Kategori
    
    Case 1
    
    GKategori = "KONUT"
    Case 2
    
    GKategori = "İŞYERİ"
    
    Case 3
    
    GKategori = "ARSA"
    
    End Select


strWhere = strWhere & "([Kategori] = """ & GKategori & """) AND "


 Select Case crc_Tipi
    
    Case 1
    
    GTipi = "KİRALIK"

    Case 2
    
    GTipi = "SATILIK"
    
    Case 3
    
    GTipi = "DEVREN KİRALIK"

    Case 4
    
    GTipi = "DEVREN SATILIK"
    
    End Select


strWhere = strWhere & "([Tipi] = """ & GTipi & """) AND "


If Not IsNull(Me.mtn_lokasyon) Then

strWhere = strWhere & "((lokasyon1 Like '*" & Me.mtn_lokasyon & "*') or (lokasyon2 Like '*" & Me.mtn_lokasyon & "*') OR (lokasyon3 Like '*" & Me.mtn_lokasyon & "*')) AND "

End If


If Me.esyali = 0 Then

strWhere = strWhere & "([esyali] = 0) AND "

Else

strWhere = strWhere & "([esyali] = -1) AND "

End If




lngLen = Len(strWhere) - 5
If lngLen <= 0 Then
    MsgBox "No criteria", vbInformation, "Nothing to do."
Else
    strWhere = Left$(strWhere, lngLen)

GSorguTamami = GSorgum & " where " & strWhere

End If


Me.mtn_sorgu = GSorguTamami

qdf2.SQL = GSorguTamami


DoCmd.OpenReport "R_002_PORTFOY", acViewPreview, , , acWindowNormal



End Sub


17/10/2018, 00:00

ozanakkaya

Koddaki crc_Tipi ve  crc_Kategori, seçenek kutusunun adı. Sizin formunuzdaki seçenek grubunun adı doğru mu kontrol edin. Hazır çalışan 2 adet seçenek var iken onu da bozmuşsunuz. Denetim isimlerini kontrol edin. 

2 seçenek grubu ve sıkıntılı olan metin kutusu için Kodu hazırlamıştım. Tamamını ben yapamam. Ben yaparsam işin anlamı kalmaz.
1 2 3 4