• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Raporda mükerrersiz kayıt sayma

Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
İyi geceler.

Ekteki örnekte görüldüğü gibi asıl kaynağı sorgu olan ve açılırken where sözcüğü ile kısıtlama getirilen bir raporum var.

Ben bu raporun alt kısmına mükerrersiz olarak örneğin adı alanında kaç kişi olduğunu saydırmak istiyorum.

Rapor kaynağının tümü sorgu olsaydı çözüm kolay.Fakat where sözcüğü işi zorlaştırıyor.
 

Ekli dosyalar

Merhaba Recep Bey..

Kriteri fonksiyona alırsak Dcount deyimi içerisinde de kullanabiliriz..

Kod:
Public Function strWhere(frm As Form)
Dim trz As String
trz = frm.Name
strWhere = ""
If Len(Forms(trz).Text2 & vbNullString) = 0 And Len(Forms(trz).Text5 & vbNullString) = 0 Then
strWhere = ""
ElseIf Len(Forms(trz).Text2 & vbNullString) > 0 And Len(Forms(trz).Text5 & vbNullString) = 0 Then
strWhere = "((data.[not]>=" & Forms(trz).Text2 & "))"
 
ElseIf Len(Forms(trz).Text2 & vbNullString) = 0 And Len(Forms(trz).Text5 & vbNullString) > 0 Then
strWhere = "((data.[not]<=" & Forms(trz).Text5 & "))"
ElseIf Len(Forms(trz).Text2 & vbNullString) > 0 And Len(Forms(trz).Text5 & vbNullString) > 0 Then
strWhere = "((data.[not]>=" & Forms(trz).Text2 & ")) And ((data.[not]<=" & Forms(trz).Text5 & "))"
End If
End Function
 

Ekli dosyalar

Hocam size de zahmet veriyoruz ama kişi sayısını bulurken mükerrer olanları tek saydırabilir miyiz?

Örneğin Ahmet isminden 2 tane var.Bunu 1 kişi olarak saysın.

Yada where yan cümleciği ile oluşan kriteri veya raporu sorgu olarak tekrardan oluşturabilir miyiz?

Veya where yan cümleciğini fonksiyon veya benzeri bir yöntem ile sorgunun kriter bölümüne eklebilir miyiz?

Çok teşekkürler.
 
Rapordaki kodu bu prosedürle değiştiriniz..:

Kod:
Dim rs As New ADODB.Recordset
Dim srg, kriter, kriter2 As String
kriter = Forms![Form1]![Check0]
kriter2 = strWhere(Forms!Form1)
srg = "select * " _
& "from Data where ehliyet = " & kriter & ""
srg = "select adı from (" & srg & ")"
srg = srg & " where " & kriter2 & " group by adı"
srg = "select count(adı) from (" & srg & ")"
rs.Open srg, CurrentProject.Connection, 1, 3
Metin15 = rs(0)
rs.Close
Set rs = Nothing
 
Sn. Taruz

Çok teşekkürler.

Asıl istediğim çözümü uzun bir aradan sonra verdiğiniz fikirler doğrultusunda aşağıdaki linkte buldum. :)

http://support.microsoft.com/default.aspx/kb/290178

Buradaki [Start Date] ve [End Date] bilgilerini form üzerindeki alanlardan nasıl aldırabiliriz?
 
Geri
Üst