Private Sub UserForm_Initialize()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sqlSorgusu As String
Dim i As Integer
' Veritabanı bağlantısını kur
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 ' Hata yakalamayı kapat
sqlSorgusu = "SELECT * FROM tbl_Personel;"
Set rs = New ADODB.Recordset
On Error GoTo HataVeriOku
rs.Open sqlSorgusu, cn, adOpenStatic, adLockReadOnly
On Error GoTo 0
' ListBox'ın sütun sayısını ayarla (tablodaki alan sayısı kadar)
lstPersonel.ColumnCount = rs.Fields.Count
' Debug.Print "ColumnCount değeri: " & lstPersonel.ColumnCount
' ListBox'a verileri yükle
If Not rs.EOF Then
Do While Not rs.EOF
' Her bir kayıt için bir dizi oluştur
Dim personelBilgileri() As Variant
ReDim personelBilgileri(rs.Fields.Count - 1)
' Kayıttaki tüm alanları diziye aktar
For i = 0 To rs.Fields.Count - 1
personelBilgileri(i) = rs.Fields(i).Value
Next i
' Diziyi ListBox'a bir satır olarak ekle
lstPersonel.AddItem Join(personelBilgileri, vbTab) ' Alanları sekme ile ayır
' lstPersonel.AddItem Join(personelBilgileri, ";") ' Sekme yerine noktalı virgül kullan
rs.MoveNext
Loop
End If
' ListBox'ın sütun sayısını tekrar ayarla (emin olmak için)
lstPersonel.ColumnCount = rs.Fields.Count
' Başlık satırını ekle
lstPersonel.AddItem "ID" & vbTab & "Ad Soyad" & vbTab & "Doğum Tarihi" & vbTab & "..." ' Diğer başlıkları da ekleyin
' lstPersonel.ColumnWidths = "30;50;50;50;50;50;50;50;50;50;50;50;50;50;50"
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
'
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
If Not rs Is Nothing Then
If rs.State = adStateOpen Then rs.Close
Set rs = Nothing
End If
If Not cn Is Nothing Then
If cn.State = adStateOpen Then cn.Close
Set cn = Nothing
End If
End If
End Sub

Herkese Merhaba uzun zamandır Foruma konu açmamıştım. C# ve ASP.NET Core ile uygulama geliştirmeye devam ediyorum hobi olarak çevremdekilere ama Vba dan çok uzak kaldım Şu an Tilki yine kürkçü dükkanına döndü. Sorunum Yapay zeka kod uygulamalarından aldığım yanıtlarla bile çözemediğim saçma sapan aslında zamanında çok kolay hallettiğim bir konuydu ama Yapay zeka kullanımı insanı tembelleştirdiği için bende daha da yaşlandığımdan sorunu bir türlü Yapay zekacımla birlikte çözemedik. Muhtelif bir sürü denemeler yapıldı kod ile yada lstPersonelListesi properties seçeneğinden fakat çözümü bulamadık. 15 kolonun sadece 2 tanesini listboxta gösterebiliyorum diğer alanlardaki veriler gelmiyor sütun başlıklarını bile getiremedim. İlgilenenlere şimdiden teşekkür ederim.
Access Çekirgesi
![[Resim: img-cray.gif]](https://www.accesstr.net/images/smilies/img-cray.gif)
![[Resim: img-cray.gif]](https://www.accesstr.net/images/smilies/img-cray.gif)