yanginci34
Yeni Üye
- Katılım
- 18 Ocak 2023
- Mesajlar
- 81
- Çözümler
- 13
- Aldığı beğeni
- 63
- Excel V
- Office 2016 TR
Konu Sahibi
arkadaşlar merhaba; aşağıdaki kod ile veri listelemeye çalışıyorum ama her seferinde "Could not set the List property. Invalid property value" hatası alıyorum ekte de access dosyasını paylaşıyorum şimdiden teşekkür ederim
Sub KayıtListele()
Dim cnn As Object, rs As Object
Dim sql As String
Dim i As Integer
Dim rowData(0 To 15) As String ' 0 tabanlı dizi çünkü .List kullanacağız
' Bağlantı oluştur
Set cnn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\Saha.accdb"
' SQL Sorgusu
sql = "SELECT tblTespitler.TespitID, tblKategoriler.KategoriAdi, tblDurumlar.DurumAdi, tblIlceler.IlceAdi, " & _
"tblMahalleler.MahalleAdi, tblYollar.YolAdi, tblTespitler.Konum, tblTespitler.Aciklama, " & _
"tblTespitler.Resim1, tblTespitler.Resim2, tblTespitler.Resim3, tblTespitler.Tarih, " & _
"tblTespitler.Ekleyen, tblTespitler.Onay, tblTespitler.TespitSayisi, tblTespitler.YapimTarihi " & _
"FROM (((((tblTespitler " & _
"LEFT JOIN tblIlceler ON tblTespitler.IlceID = tblIlceler.IlceID) " & _
"LEFT JOIN tblMahalleler ON tblTespitler.MahalleID = tblMahalleler.MahalleID) " & _
"LEFT JOIN tblYollar ON tblTespitler.YolID = tblYollar.YolID) " & _
"LEFT JOIN tblKategoriler ON tblTespitler.KategoriID = tblKategoriler.KategoriID) " & _
"LEFT JOIN tblDurumlar ON tblTespitler.DurumID = tblDurumlar.DurumID) " & _
"WHERE tblTespitler.Onay = False"
rs.Open sql, cnn, 1, 3
' ListBox başlıkları ve yapısı
With Me.lstKayıtlar
.Clear
.ColumnCount = 16
.ColumnWidths = "0 pt;80 pt;80 pt;80 pt;80 pt;100 pt;100 pt;100 pt;0 pt;0 pt;0 pt;80 pt;60 pt;50 pt;60 pt;80 pt"
End With
' Kayıtları döngüyle ekle
Do Until rs.EOF
For i = 0 To 15
If IsNull(rs.Fields(i).Value) Then
rowData(i) = ""
ElseIf IsDate(rs.Fields(i).Value) Then
rowData(i) = Format(rs.Fields(i).Value, "dd.mm.yyyy")
Else
rowData(i) = CStr(rs.Fields(i).Value)
End If
Next i
Me.lstKayıtlar.AddItem rowData(0)
For i = 1 To 15
Me.lstKayıtlar.List(Me.lstKayıtlar.ListCount - 1, i) = rowData(i)
Next i
rs.MoveNext
Loop
' Temizlik
rs.Close: cnn.Close
Set rs = Nothing: Set cnn = Nothing
End Sub
Sub KayıtListele()
Dim cnn As Object, rs As Object
Dim sql As String
Dim i As Integer
Dim rowData(0 To 15) As String ' 0 tabanlı dizi çünkü .List kullanacağız
' Bağlantı oluştur
Set cnn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\Saha.accdb"
' SQL Sorgusu
sql = "SELECT tblTespitler.TespitID, tblKategoriler.KategoriAdi, tblDurumlar.DurumAdi, tblIlceler.IlceAdi, " & _
"tblMahalleler.MahalleAdi, tblYollar.YolAdi, tblTespitler.Konum, tblTespitler.Aciklama, " & _
"tblTespitler.Resim1, tblTespitler.Resim2, tblTespitler.Resim3, tblTespitler.Tarih, " & _
"tblTespitler.Ekleyen, tblTespitler.Onay, tblTespitler.TespitSayisi, tblTespitler.YapimTarihi " & _
"FROM (((((tblTespitler " & _
"LEFT JOIN tblIlceler ON tblTespitler.IlceID = tblIlceler.IlceID) " & _
"LEFT JOIN tblMahalleler ON tblTespitler.MahalleID = tblMahalleler.MahalleID) " & _
"LEFT JOIN tblYollar ON tblTespitler.YolID = tblYollar.YolID) " & _
"LEFT JOIN tblKategoriler ON tblTespitler.KategoriID = tblKategoriler.KategoriID) " & _
"LEFT JOIN tblDurumlar ON tblTespitler.DurumID = tblDurumlar.DurumID) " & _
"WHERE tblTespitler.Onay = False"
rs.Open sql, cnn, 1, 3
' ListBox başlıkları ve yapısı
With Me.lstKayıtlar
.Clear
.ColumnCount = 16
.ColumnWidths = "0 pt;80 pt;80 pt;80 pt;80 pt;100 pt;100 pt;100 pt;0 pt;0 pt;0 pt;80 pt;60 pt;50 pt;60 pt;80 pt"
End With
' Kayıtları döngüyle ekle
Do Until rs.EOF
For i = 0 To 15
If IsNull(rs.Fields(i).Value) Then
rowData(i) = ""
ElseIf IsDate(rs.Fields(i).Value) Then
rowData(i) = Format(rs.Fields(i).Value, "dd.mm.yyyy")
Else
rowData(i) = CStr(rs.Fields(i).Value)
End If
Next i
Me.lstKayıtlar.AddItem rowData(0)
For i = 1 To 15
Me.lstKayıtlar.List(Me.lstKayıtlar.ListCount - 1, i) = rowData(i)
Next i
rs.MoveNext
Loop
' Temizlik
rs.Close: cnn.Close
Set rs = Nothing: Set cnn = Nothing
End Sub