Skip to main content

AccessTr.neT


Excel İstediğimiz Sayfanın İstediğimiz Sutundan Sıralı Filtreli Gruplanmış Liste

Excel İstediğimiz Sayfanın İstediğimiz Sutundan Sıralı Filtreli Gruplanmış Liste

#25
aşağıdaki kod bende çalıştı dilerim işinize yarar
Açılır kutu accessten farklıymış
ComboBox1.Column = ADO_RS.GetRows kodu ile alıyormuş
Dim Sql As String
Dim ADO_CN As Object
Dim ADO_RS As Object

Set ADO_CN = CreateObject("Adodb.Connection")
Set ADO_RS = CreateObject("adodb.recordset")

SQL = "SELECT F1 as HY1, F2 as Hy2 "
SQL = Sql & vbCrLf
SQL = Sql & "FROM [Sayfa1$f11:g15" & "] ORDER BY F1 ;"

ADO_CN.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.FullName & ";extended properties=""excel 8.0;hdr=no"""
ADO_CN.Open
ADO_RS.Open SQL, ADO_CN, 3, 1
'
' Eğer Hiç Kayıt Yoksa
If ADO_RS.RecordCount = 0 Then
ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing
MsgBox "Kayıt Bulunamadı.", vbCritical, "Veri Yok"
Exit Sub
End If
ADO_RS.movelast
ADO_RS.MoveFirst

ComboBox1.Column = ADO_RS.GetRows

ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing

bu arada sağolun @feraz hocam dediğiniz gibi referans eklemeden yaptım)
Cevapla
#26
(18/01/2020, 00:50)berduş yazdı: bu arada sağolun @feraz hocam dediğiniz gibi referans eklemeden yaptım)

Rica ederim üstad.
En kullanışlısı zaten referans eklemeden yapma.

Kullanışlı derken başkaları kodları kopyala yapıştırınca hata vermez.
Cevapla
#27
(18/01/2020, 00:48)berduş yazdı: aşağıdaki kod bende çalıştı dilerim işinize yarar
Açılır kutu accessten farklıymış
ComboBox1.Column = ADO_RS.GetRows kodu ile alıyormuş
Dim Sql As String
Dim ADO_CN As Object
Dim ADO_RS As Object

Set ADO_CN = CreateObject("Adodb.Connection")
Set ADO_RS = CreateObject("adodb.recordset")

SQL = "SELECT F1 as HY1, F2 as Hy2 "
SQL = Sql & vbCrLf
SQL = Sql & "FROM [Sayfa1$f11:g15" & "] ORDER BY F1 ;"

ADO_CN.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.FullName & ";extended properties=""excel 8.0;hdr=no"""
ADO_CN.Open
ADO_RS.Open SQL, ADO_CN, 3, 1
'
'   Eğer Hiç Kayıt Yoksa
If ADO_RS.RecordCount = 0 Then
    ADO_RS.Close
    ADO_CN.Close
    Set ADO_RS = Nothing
    Set ADO_CN = Nothing
    MsgBox "Kayıt Bulunamadı.", vbCritical, "Veri Yok"
    Exit Sub
    End If
ADO_RS.movelast
ADO_RS.MoveFirst

ComboBox1.Column = ADO_RS.GetRows

ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing

SQL = Sql & "FROM [Sayfa1$f11:g" & sonsatırno & "]" ORDER BY F1 " böylede sonsatır no değişken eklerseniz böyle olur.
Cevapla
#28
Bublesort arşivimden ekleyeyim dictionary de var.
3 adet dosya var deneyebilirsiniz istiyorsanız.
Dosyayı buraya yükleyemedim çünkü dosya ekleme yeri çıkmadı birtürlü.

https://www.dosyaupload.com/70l4


Kod:
For i = 1 To say
        For j = i To say
            If arr(i, 1) > arr(j, 1) Then
                Temp = arr(j, 1)
                arr(j, 1) = arr(i, 1)
              arr(i, 1) = Temp
            End If
        Next j
    Next i

Yukarıdaki yer bublesort kısım.Çok fazla benzersiz veri varsa yazaş çalışır.

Kod:
Private Sub CommandButton1_Click()

    Dim i As Long, j As Long, k As Long
    Dim Temp As Long
    Dim scr As Object
    Dim say As Long, arr()
   
    List = Range("A3:A" & Cells(Rows.Count, 1).End(3).Row).Value
   
    Set scr = CreateObject("Scripting.Dictionary")
   
With scr
ReDim arr(1 To UBound(List), 1 To 1)
    On Error Resume Next
    For k = LBound(List) To UBound(List)
      If Not .Exists(List(k, 1)) Then
        .Add List(k, 1), ""
            say = say + 1

        arr(say, 1) = List(k, 1)

      End If
    Next
   
    [D:D] = ""
    Err.Clear
If say > 0 Then
    For i = 1 To say
        For j = i To say
            If arr(i, 1) > arr(j, 1) Then
                Temp = arr(j, 1)
                arr(j, 1) = arr(i, 1)
              arr(i, 1) = Temp
            End If
        Next j
    Next i
 

  Range("D3").Resize(say, 1).Value = arr
End If
 
End With

    MsgBox "Bitti..", vbInformation
   
  Erase List: Set scr = Nothing: Erase arr
End Sub

Cevapla
#29
Paylaşımlar için teşekkürler 
Arşiv bende yapmaya çalıştım bir müddet sonra içine herşeyi attığım aradığımı bulamadığım garip bir hal alıyor orada aramaktansa google da daha yenisini daha kısa sürede bular hale geliyorum
Ben java da sql ile çalışırken genel olarak vertabanı bilgilerini arraylist hashmap gibi dizelere alıp işlem yapıyorum daha kısa sürüyor gerektiğinde dizileri güncelliyorum excelde her seferinde recordset ile almak siralamak filtrelemek uzun sürüyor mu
Cevapla
#30
(18/01/2020, 07:43)accessman yazdı: Paylaşımlar için teşekkürler 
Arşiv bende yapmaya çalıştım bir müddet sonra içine herşeyi attığım aradığımı bulamadığım garip bir hal alıyor orada aramaktansa google da daha yenisini daha kısa sürede bular hale geliyorum
Ben java da sql ile çalışırken genel olarak vertabanı bilgilerini arraylist hashmap gibi dizelere alıp işlem yapıyorum daha kısa sürüyor gerektiğinde dizileri güncelliyorum excelde her seferinde recordset ile almak siralamak filtrelemek uzun sürüyor mu

Arraylist olayı exceldede var.

System.collection.arraylist vba  olarak aratırsanız hertürlü örnek var.

Bubblesortu şu yönden seviyorum.
Arraylist ve Ado ile bazen sıralanırken garip sıralanıyor.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task