Kod:
Private Sub UserForm_Initialize()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sqlSorgusu As String
Dim i As Integer
Dim rowIndex As Long
Dim alanSayisi As Integer
Set cn = New ADODB.Connection
cn.ConnectionString = "Driver={ODBC Driver 17 for SQL Server};" & _
"Server=OĞUZ\SQLEXPRESS;" & _
"Database=db_Personel;" & _
"Trusted_Connection=Yes;"
On Error GoTo HataBaglanti
cn.Open
On Error GoTo 0
sqlSorgusu = "SELECT * FROM tbl_Personel;"
Set rs = New ADODB.Recordset
On Error GoTo HataVeriOku
rs.Open sqlSorgusu, cn, adOpenStatic, adLockReadOnly
On Error GoTo 0
If rs.EOF Then GoTo TemizleHerşey
alanSayisi = rs.Fields.Count
With lstPersonel
.Clear
.ColumnCount = alanSayisi
.ColumnWidths = String(alanSayisi - 1, "80;") & "80"
End With
Do While Not rs.EOF
' Güvenli AddItem ile ilk sütunu ekle
On Error Resume Next
lstPersonel.AddItem NzText(rs.Fields(0).Value)
If Err.Number <> 0 Then Exit Do ' additem başarısızsa çık
On Error GoTo 0
rowIndex = lstPersonel.ListCount - 1
For i = 1 To alanSayisi - 1
On Error Resume Next
lstPersonel.List(rowIndex, i) = NzText(rs.Fields(i).Value)
On Error GoTo 0
Next i
rs.MoveNext
Loop
TemizleHerşey:
rs.Close: cn.Close
Set rs = Nothing: Set cn = Nothing
Exit Sub
HataBaglanti:
MsgBox "Veritabanına bağlanamadı: " & Err.Description, vbCritical
Resume TemizleHerşey
HataVeriOku:
MsgBox "Veri okunamadı: " & Err.Description, vbCritical
Resume TemizleHerşey
End Sub
Private Function NzText(val As Variant) As String
If IsNull(val) Or IsEmpty(val) Then
NzText = ""
Else
NzText = CStr(val)
End If
End Function(16/05/2025, 17:20)berduş yazdı: lstPersonel.AddItem Join(personelBilgileri, vbTab) <-- bu kod edeniyle veriler ilk sütuna atanıyor siz bütün alanları tab ile birleştirmişsiniz bu nedenle sadece tek sütun görünüyor
O bölümde denemelerden birinde eklenmişti Berduş hocam.
![[Resim: img-cray.gif]](https://www.accesstr.net/images/smilies/img-cray.gif)