(30/06/2020, 20:43)kanakan52 yazdı:Merhaba üstad.(30/06/2020, 19:37)feraz yazdı: Filtre kodunu değiştirdim alttaki gibi.Hatanızdan birisi from Ajandam yerine from Database yazmışsınız.@feraz Hocam merhaba, "önceki ay" secince bugünün tarihinden bir ay oncesi (mayis ayi) filtrelenecek hocam, bu ay secince haziran, gelecek ay secince temmuz ayindaki kayitlar gelmesi lazim, ayni mantikla, gecen yil (2019),bu yil (2020) gelecek yil (2021) olmasi lazim
Geçen ay olayı için nasıl olacak.Textboxa tarih girip o tarihen 1 ay öncesimiyoksa kodun çalıştığı tarihten 1 ay öncesimi.
Sub filtre()
Dim alan As String
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
baglan.Open "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.Path & "\Database.accdb"
If ComboBox14.Value = "Baþlama Zamaný" Then
alan = "BaslamaZamani"
ElseIf ComboBox14.Value = "Bitiþ Zamaný" Then
alan = "BitisZamani"
ElseIf ComboBox14.Value = "Hatýrlatma Zamaný" Then
alan = "HatirlatmaZamani"
End If
secim = TextBox11.Value
secim1 = TextBox10.Value
Me.ListView1.ListItems.Clear
If TextBox10.Value = "" Or TextBox11.Value = "" Then GoTo son
On Error GoTo son
Select Case ComboBox15.Value
Case "Eþittir": rs.Open "select * from Ajandam where fix(" & alan & ") like " & Fix(CDbl(CDate(secim1))) & "", baglan, 1, 1
Case "Arasýnda": rs.Open "select * from Ajandam where fix(" & alan & ") between " & Fix(CDbl(CDate(secim))) & " and " & Fix(CDbl(CDate(secim1))) & "", baglan, 1, 1
End Select
With ListView1
If rs.RecordCount > 0 Then
Do While Not rs.EOF
.ListItems.Add , , rs(0).Value & ""
For i = 1 To rs.Fields.Count - 1
.ListItems(.ListItems.Count).ListSubItems.Add , , rs(i).Value & ""
Next i
rs.MoveNext
Loop
End If
End With
son:
Set rs = Nothing
Set con = Nothing
End Sub
Kodda Dateserial ile işlem yapılıyordu aynısını uygulayabilirsiniz.Deneyin olmazsa yarın bakarım.Comboboxtan geçen ay seçince fitrelenmeli bu durumda kriter textboxa gerek yok yani bunun için yani combobox koduna yazılacak.