30/06/2021, 19:46
Userform İle Sql Tablosundan Arama Yapmak
1 2
01/07/2021, 01:13
feraz
Bir örnek hazırladım abey.
Test sayfasını power query den gelen sorgu gibi düşünebilirsiniz.
Önemli olan Match ve dizilerin çalışma maktası sorgudan geline göre.
Yani hem sorgu için döngü hemde listview için döngüye gerek yok.Sadece listview için gerek var.
Test sayfasını power query den gelen sorgu gibi düşünebilirsiniz.
Önemli olan Match ve dizilerin çalışma maktası sorgudan geline göre.
Yani hem sorgu için döngü hemde listview için döngüye gerek yok.Sadece listview için gerek var.
sub view()
Dim i As Long, sorgu As String, sorgu2 As String
Dim dizi, dizi2, kac As Long
Set rs = CreateObject("adodb.recordset")
sorgu = "select yyy from [Test$] where yyy is not null"
sorgu2 = "select * from [Test$] where yyy is not null"
Call listvieww
rs.Open sorgu, con, 1, 3
If rs.RecordCount > 0 Then
dizi = rs.getrows
rs.Close
rs.Open sorgu2, con, 1, 3
dizi2 = rs.getrows
With Me.ListView1
For i = 1 To .ListItems.Count
kac = 0
On Error Resume Next
kac = WorksheetFunction.Match(.ListItems(i), dizi, 0)
If kac > 0 Then .ListItems(i).SubItems(1) = dizi2(1, kac - 1)
If kac = 0 Then .ListItems(i).SubItems(1) = "Yok"
Next
End With
End If
On Error Resume Next
Erase dizi: Erase dizi2
End Sub
01/07/2021, 09:39
kanakan52
(01/07/2021, 01:13)feraz yazdı: Bir örnek hazırladım abey.
Test sayfasını power query den gelen sorgu gibi düşünebilirsiniz.
Önemli olan Match ve dizilerin çalışma maktası sorgudan geline göre.
Yani hem sorgu için döngü hemde listview için döngüye gerek yok.Sadece listview için gerek var.
sub view()
Dim i As Long, sorgu As String, sorgu2 As String
Dim dizi, dizi2, kac As Long
Set rs = CreateObject("adodb.recordset")
sorgu = "select yyy from [Test$] where yyy is not null"
sorgu2 = "select * from [Test$] where yyy is not null"
Call listvieww
rs.Open sorgu, con, 1, 3
If rs.RecordCount > 0 Then
dizi = rs.getrows
rs.Close
rs.Open sorgu2, con, 1, 3
dizi2 = rs.getrows
With Me.ListView1
For i = 1 To .ListItems.Count
kac = 0
On Error Resume Next
kac = WorksheetFunction.Match(.ListItems(i), dizi, 0)
If kac > 0 Then .ListItems(i).SubItems(1) = dizi2(1, kac - 1)
If kac = 0 Then .ListItems(i).SubItems(1) = "Yok"
Next
End With
End If
On Error Resume Next
Erase dizi: Erase dizi2
End Sub
@feraz abim merhaba. Yine emek verip uğraşmışsın eline sağlık.
If rs.RecordCount > 0 Then satırı aktifken tabloyu dizi içine almadı. dizi2 'ye hiçbir şekilde veri almadı. Muhtemelen ben bir şeyleri atlıyorum. Denemeye devam ediyorum.
Sevgiler selamlar.
1 2