Skip to main content

AccessTr.neT


Listbox Da Verilerin Listelenmesi Hakkında.

Oğuz Türkyılmaz
Oğuz Türkyılmaz
12
1675

Listbox Da Verilerin Listelenmesi Hakkında.

#7
kodun son hali aşağıdaki gibidir
başlıkları da alıyor ama yanılmıyorsam Excel userformdaki listboxlar başlığı sadece Excel sayfasından alırken kullanabiliyor onun için başlığı da diziye ekledim. bu durumda listboxta aşağı indiğinizde başlık alanı da dizi içinde olduğundan kayboluyor
listbox'ın header özelliği HAYIR yapılmalı
Private Sub UserForm_Initialize()
   
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sqlSorgusu As String

' Bağlantıyı hızlı şekilde aç
Set cn = New ADODB.Connection
cn.ConnectionString = "Driver={ODBC Driver 17 for Sql Server};" & _
                      "Server=OĞUZ\SQLEXPRESS;" & _
                      "Database=db_Personel;" & _
                      "Trusted_Connection=Yes;" & _
                      "Connect Timeout=5"  ' Bağlantıyı 5 saniyede tamamla

cn.Open

' Hızlı veri çekme için Sql sorgusunu hazırlama
sqlSorgusu = "SELECT * FROM [tbl_Personel] WITH (NOLOCK);" ' Kilitlemeyi önleyerek hızlı okuma sağlar

Set rs = New ADODB.Recordset
rs.CursorType = adOpenForwardOnly ' İleriye doğru en hızlı okuma için
rs.LockType = adLockReadOnly ' Veriyi sadece okuma modunda açarak hızlandırma
rs.Open sqlSorgusu, cn
lstPersonel.ColumnCount = rs.Fields.Count
' Veriyi diziye aktar
    If Not rs.EOF = True Then
    Dim dz As Variant, dzS As Variant
    dz = rs.GetRows
    ReDim dzS(LBound(dz) To UBound(dz), LBound(dz, 2) - 1 To UBound(dz, 2))
        For x = LBound(dz) To UBound(dz)
            For y = LBound(dz, 2) To UBound(dz, 2)
                dzS(x, y) = dz(x, y)
            Next y
        Next x
    For x = 0 To rs.Fields.Count - 1
        dzS(x, -1) = rs(x).Name
    Next x
  lstPersonel.Column = dzS
  End If
' Temizlik
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
    Exit Sub

HataBaglanti:
    MsgBox "Veritabanına bağlanırken bir hata oluştu: " & Err.Description, vbCritical
    ' Hata durumunda bağlantı nesnelerini temizle
    If Not cn Is Nothing Then
        If cn.State = adStateOpen Then cn.Close
        Set cn = Nothing

HataVeriOku:
    MsgBox "Personel verilerini okurken bir hata oluştu: " & Err.Description, vbCritical
    ' Hata durumunda kayıt kümesi nesnesini temizle
    If Not rs Is Nothing Then
        If rs.State = adStateOpen Then rs.Close
        Set rs = Nothing
    End If
    ' Bağlantıyı da kapatmayı unutmayın (eğer açıksa)
    If Not cn Is Nothing Then
        If cn.State = adStateOpen Then cn.Close
        Set cn = Nothing
    End If
End If

End Sub
eğer başlıkların başlık formatında görünmesini istiyorsanız verileri excl sayfasına ekleyip oradan çekmelisiniz
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
RE: Listbox Da Verilerin Listelenmesi Hakkında. - Yazar: berduş - 16/05/2025, 19:20
Task