RE: Access Sorgusunda Alan Adı Değişkeni - kanakan52 - 30/06/2020
(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
RE: Access Sorgusunda Alan Adı Değişkeni - feraz - 30/06/2020
Dosyayı ekleyebilirsiniz diye ümit ediyorum şuan.
RE: Access Sorgusunda Alan Adı Değişkeni - kanakan52 - 30/06/2020
Hocam hızır gibisin Bunalmıştım
Re: Access Sorgusunda Alan Adı Değişkeni - feraz - 30/06/2020
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
RE: Access Sorgusunda Alan Adı Değişkeni - feraz - 30/06/2020
Giftede anlattım önceki evet meselesini.
RE: Access Sorgusunda Alan Adı Değişkeni - kanakan52 - 30/06/2020
(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.
Hocam anladim mantigini ama niye ilk 2 kayit? Diger veride ayni gibi
|