AccessTr.neT
Access Sorgusunda Alan Adı Değişkeni - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Access Sorgusunda Alan Adı Değişkeni (/konu-access-sorgusunda-alan-adi-degiskeni.html)

Sayfalar: 1 2 3 4 5 6 7 8


RE: Access Sorgusunda Alan Adı Değişkeni - feraz - 30/06/2020

(30/06/2020, 20:43)kanakan52 yazdı:
(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.

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
@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
Merhaba üstad.
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.


RE: Access Sorgusunda Alan Adı Değişkeni - kanakan52 - 30/06/2020

(30/06/2020, 20:49)feraz yazdı:
(30/06/2020, 20:43)kanakan52 yazdı:
(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.

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
@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
Merhaba üstad.
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.
Bakiyorum hocam simdi,


RE: Access Sorgusunda Alan Adı Değişkeni - feraz - 30/06/2020

Kodları deneyemedim mobilden yazdım.Bunları bir mesajbıx ile buldurun ay ve yıl için bir öncekini verecekmi.

Yıl için;

DateSerial(Year(Date) -1, Month(Date), Day(Date))

Ay için;

DateSerial(Year(Date), Month(Date) -1, Day(Date))


Re: Access Sorgusunda Alan Adı Değişkeni - feraz - 30/06/2020

Alttaki kodda ilgili tarihin son gününü buluyormuş.

DateSerial(Year(Date), Month(Date) + 1, 0)


Buda ilk günü buluyormuş.
Lazım olursa diye buldum kodları.Yani ayın ilk gününden son gününe kadar filtreleyebilirsiniz.Date yazan yerleri bir önceki bulunan tarihle vs.. değiştirebilirsiniz.
Kod:
DateSerial(Year(Date),Month(Date),1)



RE: Access Sorgusunda Alan Adı Değişkeni - feraz - 30/06/2020

Son verdiğim kodlardaki Date ye -1 eklenince belki önceki ayın ilk ve son günlerini bulur tarih olarak.


RE: Access Sorgusunda Alan Adı Değişkeni - kanakan52 - 30/06/2020

(30/06/2020, 21:22)feraz yazdı: Son verdiğim kodlardaki Date ye -1 eklenince belki önceki ayın ilk ve son günlerini bulur tarih olarak.


hocam biraz kafa yorucam, seni daha fazla yormim içinden çıkabilirim diye ümit ediyorum. Olmazsa artık yine @feraz hocam diye haykırırım Img-grin