ASMET67
Altın Üye
- Katılım
- 8 Haziran 2007
- Mesajlar
- 410
- Excel Vers. ve Dili
- Excel 2016
- Altın Üyelik Bitiş Tarihi
- 30-11-2027
Selamlar.
Aşağıdaki fornksiyon ile excelden access formuna bağlanıp list view nesnesinde görüntüleme yapıyorum.
Yalnız Access formunda 1 den fazla kayıt olduğunda düzgün çalışıyor
Sadece bir kayit olduğunda hata veriyor.
Nasıl bir düzeltme yapmamız lazım.
Teşekkürler.
Aşağıdaki fornksiyon ile excelden access formuna bağlanıp list view nesnesinde görüntüleme yapıyorum.
Yalnız Access formunda 1 den fazla kayıt olduğunda düzgün çalışıyor
Sadece bir kayit olduğunda hata veriyor.
Nasıl bir düzeltme yapmamız lazım.
Teşekkürler.
Kod:
Private Sub CommandButton1_Click()
Dim Sorgu As String
Dim LWSutunAdi As Variant
LWSutunAdi = Array("MalzemeNo", "Tarih", "Ay", "YT No", "Adet", "Kod", "Malzeme Adı")
Sorgu = "Select MalzemeNo, Tarih, AyAdi, YtNo, Adet, Kod, MalzemeAdi From Malzeme"
Call LWDoldur(Me.ListView1, LWSutunAdi, Sorgu)
End Sub
Kod:
Private Sub LWDoldur(LWAdi As MSForms.Control, Baslik, Sorgu As Variant)
Dim Satir, Sutun, SonSatir, SonSutun As Long
Dim veri As Variant
LWAdi.View = lvwReport
With LWAdi.ColumnHeaders
.Clear
For i = 0 To UBound(Baslik)
.Add , , Baslik(i)
Next
End With
With LWAdi
LWAdi.ListItems.Clear
Set ksm = New ADODB.Recordset
Set Bagm = New ADODB.Connection
Bagm.Open "DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & ThisWorkbook.Path & "\Malzeme.mdb"
Set ksm = Bagm.Execute(Sorgu)
If Not ksm.EOF Then
veri = WorksheetFunction.Transpose(ksm.GetRows)
Else
LWAdi.Clear
End If
Bagm.Close
Set ksm = Nothing
Set Bagm = Nothing
SonSatir = UBound(veri, 1)
SonSutun = UBound(veri, 2)
For Satir = 1 To SonSatir
.ListItems.Add , , veri(Satir, 1)
If SonSutun > 2 Then
For Sutun = 2 To SonSutun
.ListItems(Satir).SubItems(Sutun - 1) = veri(Satir, Sutun)
Next
End If
Next
End With
End Sub
Son düzenleme: