Skip to main content

AccessTr.neT


Access Sorgusunda Alan Adı Değişkeni

Access Sorgusunda Alan Adı Değişkeni

#13
(30/06/2020, 12:42)feraz yazdı: Dosyayı ekleyin halledelim,açıklamada ekleyin

@feraz hocam donma ve kapanma olayını if şartı ile hallettim,

sizden Geçen ay, geçen yıl filtresi için yardım rica ediyorum.. Diğerlerini aynı yoldan giderek çözebilirim diye ümit ediyorum.

Çalışmada Başlama zamanını seçip "eşittir",  "arasında" ,"geçen ay", bu ay gibi seçenekler var. Bunları seçtiğimde kayıtlar gelsin istiyorum.

ilk 4 şartı yaptım hocam, diğerleri için (pasif satırlar) birer örnek rica ediyorum.

Cevaplanmış sorulara taşındığı için sanırım dosya yükleyemiyorum..
Sub filtre()
Dim secim As String
Dim secim2 As String
Dim alan As String

On Error Resume Next

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 = Format(TextBox10.Value, "dd.mm.yyyy")
secim2 = Format(TextBox11.Value, "dd.mm.yyyy")

'..................Tarih Fitreleri.................................................
If ComboBox15.Value = "Eşittir" Then
rs.Open "select*from Ajandam WHERE fix([" & alan & "]) =" & CDbl(CDate(secim)) & "", baglan, 1, 1

ElseIf ComboBox15.Value = "Arasında" Then
rs.Open "select*from Ajandam WHERE fix([" & alan & "]) between " & Fix(CDbl(CDate(secim))) & " and " & Fix(CDbl(CDate(secim2))) & "", baglan, 1, 1

ElseIf ComboBox15.Value = "Önce" Then
rs.Open "select*from Ajandam WHERE fix([" & alan & "]) <= " & Fix(CDbl(CDate(secim))) & "", baglan, 1, 1

ElseIf ComboBox15.Value = "Sonra" Then
rs.Open "select*from Ajandam WHERE fix([" & alan & "]) >= " & Fix(CDbl(CDate(secim))) & "", baglan, 1, 1

'ElseIf ComboBox15.Value = "Geçen Ay" Then
'rs.Open "select*from Ajandam WHERE format(Month([" & alan & "])) = " & Format(CDbl(Date), "mm") - 1 & "", baglan, 1, 1
'End If

'ElseIf ComboBox15.Value = "Geçen Yıl" Then
'rs.Open "select*from Database WHERE Database.alan ='" & secim & "'", baglan, 1, 1

With ListView1
    .ListItems.Clear

    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
Set rs = Nothing
Set con = Nothing
End Sub
Cevapla
#14
Dosyayı ekleyebilirsiniz diye ümit ediyorum şuan.
Cevapla
#15
Hocam hızır gibisin Img-grin Bunalmıştım
.rar Ajanda 3.rar (Dosya Boyutu: 1,92 MB | İndirme Sayısı: 2)
Cevapla
#16
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
.rar Ajanda 3.rar (Dosya Boyutu: 1,93 MB | İndirme Sayısı: 4)
Cevapla
#17
Giftede anlattım önceki evet meselesini.

[Resim: ttt135f7f992396033e.gif]
Cevapla
#18
(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

(30/06/2020, 19:48)feraz yazdı: Giftede anlattım önceki evet meselesini.

[Resim: ttt135f7f992396033e.gif]
Hocam anladim mantigini ama niye ilk 2 kayit?  Diger veride ayni gibi
Son Düzenleme: 30/06/2020, 20:47, Düzenleyen: kanakan52.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task