Çözüldü Koşula uymayan verilerin Listview1'e eklenmesini engelleme?

Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
07-02-2024
Merhaba arkadaşlar.
Listview1 de toplantıda görüşülecek konular listeleniyor. Görüşülen konu onaylanırsa listeden eksilmesi,gösterilmemesi gerekiyor.
Talebe ilişkin kodlamada yardımlarınıza ihtiyacım var.


Ekran Alıntısı.PNG

Kod:
Private Sub listeye_al()

 With Me.ListView1
  .Gridlines = True
  .FullRowSelect = True
  .View = lvwReport
  .ListItems.Clear
  .ColumnHeaders.Clear

End With
With ListView1
.View = lvwReport
.ColumnHeaders.Add , , "KIMLIK", 0, lvwColumnLeft
.ColumnHeaders.Add , , "Talep İçeriği", 70, lvwColumnLeft
.ColumnHeaders.Add , , "Miktar", 50, lvwColumnCenter
.ColumnHeaders.Add , , "Ölçü/Birim", 70, lvwColumnCenter
.ColumnHeaders.Add , , "Talep Yapan Birim", 100, lvwColumnLeft
.ColumnHeaders.Add , , "Taleple İlgili Depo", 100, lvwColumnLeft
.ColumnHeaders.Add , , "TKY Adı Soyadı", 100, lvwColumnLeft
.ColumnHeaders.Add , , "A. Ortala Tüketim", 100, lvwColumnLeft
.ColumnHeaders.Add , , "Mevcut Stok Durumu", 100, lvwColumnCenter
.ColumnHeaders.Add , , "Gerekçe", 100, lvwColumnLeft
.ColumnHeaders.Add , , "Onay", 50, lvwColumnCenter
.ColumnHeaders.Add , , "Red", 60, lvwColumnCenter
.ColumnHeaders.Add , , "Açıklama", 100, lvwColumnLeft
.FullRowSelect = True
.Gridlines = True
End With

    
On Error Resume Next
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")

Call BAGLANTI

   rs.Open "select KIMLIK,talep_içerigi,miktarı,ölçü_birimi,talep_yapan_birim,taleple_ilgili_depo,tky_adısoyadı,aylık_ortala_tüketim,mevcut_stok_durumu,gerekçe,onay,red,açıklama from [itk_talep]", baglan, 1, 1
 
    ListView1.ListItems.Clear
Dim satir As Integer
    On Error Resume Next
    If Not rs.EOF Then
        Do While Not rs.EOF
 Set evn = ListView1.ListItems.Add(, , rs.fields("KIMLIK"))
 evn.SubItems(1) = rs.fields("talep_içerigi")
 evn.SubItems(2) = rs.fields("miktarı")
 evn.SubItems(3) = rs.fields("ölçü_birimi")
 evn.SubItems(4) = rs.fields("talep_yapan_birim")
 evn.SubItems(5) = rs.fields("taleple_ilgili_depo")
 evn.SubItems(6) = rs.fields("tky_adısoyadı")
 evn.SubItems(7) = rs.fields("aylık_ortala_tüketim")
 evn.SubItems(8) = rs.fields("mevcut_stok_durumu")
 evn.SubItems(9) = rs.fields("gerekçe")
 evn.SubItems(10) = rs.fields("Onay")
 evn.SubItems(11) = rs.fields("red")
 evn.SubItems(12) = rs.fields("açıklama")
  rs.MoveNext
      
 
       Loop
    End If
    rs.Close: con.Close
    Set rs = Nothing

End Sub
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
ADO bağlantı ile veri tabanından veri çekme konusuyla daha evvel hiç ilgilenmedimve bu konuda bilgim de yok malesef.

Forumda arama yaptığımda gördüğüm şey; rs.Open..... satırında from... WHERE komutuyla koşullu veri alınıyor gibi geldi bana.
Aşağıdaki konu sayfasında Sayın GİZLEN'in cevabına bir göz atın isterseniz, faydası olacağını düşünüyorum.
Bence deneme yanılma ile sonuca ulaşabilirsiniz.

Farklı bir dosyadan koşullu veri almak

Sanırım aşağıdaki birinci satırda yer alan mevcut kod satırında değişiklik yaparak, ikinci satırdakine benzer bir komut satırı oluşturacaksınız.
Konu hakkında bilgisi olan başka bir üye daha doğru cevap verecektir elbette, benimkisi sadece bir fikir.
CSS:
rs.Open "select KIMLIK,talep_içerigi,miktarı,ölçü_birimi,talep_yapan_birim,taleple_ilgili_depo,tky_adısoyadı,aylık_ortala_tüketim,mevcut_stok_durumu,gerekçe,onay,red,açıklama from [itk_talep]", baglan, 1, 1

rs.Open "select * from [fatura] WHERE fttarih='" & txttarih.text  & "' and [fatura].firma LIKE '%" & txtfirma.Text & "%' order by fttarih DESC", baglan, 1, 1
 
Katılım
12 Ocak 2009
Mesajlar
838
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
07-02-2024
sn feraz tarafından çözülmüştür.
Kod:
Dim iii As Integer
With Me.ListView1
    For iii = .ListItems.Count To 1 Step -1
        If LCase(.ListItems(iii).SubItems(11)) = "x" Or LCase(.ListItems(iii).SubItems(12)) = "x" Then
            .ListItems.Remove (iii)
        End If
    Next iii
End With
 
Katılım
5 Kasım 2006
Mesajlar
580
Excel Vers. ve Dili
TÜRKCE Excel 2021 32bit
sn feraz tarafından çözülmüştür.
Kod:
Dim iii As Integer
With Me.ListView1
    For iii = .ListItems.Count To 1 Step -1
        If LCase(.ListItems(iii).SubItems(11)) = "x" Or LCase(.ListItems(iii).SubItems(12)) = "x" Then
            .ListItems.Remove (iii)
        End If
    Next iii
End With
Merhaba.
Eğer veri 32 binden fazla ise integer yerine Long yazmalısınız.İnteger alışkanlık olduğu için yazmıştım aklınızda bulunsun.
 
Üst