Raporda mükerrersiz kayıt sayma

Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
İ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

Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
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

Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
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.
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
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
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
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?
 
Üst