• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

listview acces veri tabanından veri almak

Katılım
25 Aralık 2007
Mesajlar
335
Excel Vers. ve Dili
exel 2000 türkçe
Private baglan As Object, rs As Object
Sub baglanti()
Set baglan = CreateObject("adodb.connection")
baglan.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & "\musteri.mdb"
End Sub

Sub baglanti2()
Set baglan = CreateObject("adodb.connection")
baglan.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & "\sirket.mdb"
End Sub
kodları ile acces veri tabanına baglanıyor ve
Private Sub CommandButton4_Click()
ListBox1.Clear
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
Call baglanti
rs.Open "select * from [musteri]", baglan, 1, 1
With ListBox1
.RowSource = Empty
.ColumnCount = 27
.ColumnWidths = "0;50;50;50;80;80;80;80;80;80;80;80;80;0;0;0;0;0;0;0;0;0;0;0;0;0;0"
.Column = rs.getrows
End With
rs.Close
Set rs = Nothing

ListBox2.Clear
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
Call baglanti2
rs.Open "select * from [sirket]", baglan, 1, 1
With ListBox2
.RowSource = Empty
.ColumnCount = 3
.ColumnWidths = "0;0;50"
.Column = rs.getrows
End With
rs.Close
Set rs = Nothing
End Sub
kodları ilede listboxlara veri alıyorum
ancak listbox1 i listviewle değiştirmek durumundayım
listview hangi kodlarla veri alabilirim
saygılarımla
 
Aşağıdaki kodlar işinizi görür.
Not1:
Listboxa daha hızlı alınır veriler.
Not2:
Örnek veri tabnınıda eklemeiz gerekirdi.Bu yüzden deneme fırsatım olmadı.
Yani hata denetimi yapmadım.
Gördüğünüz gibi siz örnek veritabnını eklemyive dosyayı üşenmişsiniz ama ben üşenmedim yinede size kod yazdım.:cool:
Not3:
Bağlantıları kapatmayı unutmuşsunuz.
Ayrıca bağlantı setlerinide sıfırlayıp(Nothing) ram'den atsanız daha iyi olur.

Kod:
Sub baglanti()
Set baglan = CreateObject("adodb.connection")
baglan.Open "provider=microsoft.jet.oledb.4.0,data source=" & ThisWorkbook.Path & "\musteri.mdb"
End Sub

Sub baglanti2()
Set baglan = CreateObject("adodb.connection")
baglan.Open "provider=microsoft.jet.oledb.4.0,data source=" & ThisWorkbook.Path & "\sirket.mdb"
End sub


'kodları ile acces veri tabanına baglanıyor ve
Private Sub CommandButton4_Click()
ListView1.ListItems.Clear
ListView2.ListItems.Clear
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
Call baglanti
rs.Open "select * from [musteri]", baglan, 1, 1
With ListView1
    If rs.RecordCount > 0 Then rs.movefirst
    Do While Not rs.EOF
        x = x + 1
        .ListItems.Add , , rs(0).Value
        For i = 1 To rs.Fields.Count - 1
            .ListItems(x).ListSubItems(i) = rs.Fields(i).Name
        Next
        rs.movenext
    Loop
End With
rs.Close
Set rs = Nothing

Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
x = 0
Call baglanti2
rs.Open "select * from [sirket]", baglan, 1, 1
With ListView2
    If rs.RecordCount > 0 Then rs.movefirst
    Do While Not rs.EOF
        x = x + 1
        .ListItems.Add , , rs(0).Value
        For i = 1 To rs.Fields.Count - 1
            .ListItems(x).ListSubItems(i) = rs.Fields(i).Name
        Next
        rs.movenext
    Loop
End With
rs.Close
Set rs = Nothing
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()
Dim i As Byte, arr1(), arr2()
ListView1.View = lvwReport
ListView2.View = lvwReport
arr1 = Array("0", "50", "50", "50", "80", "80", "80", "80", "80", "80", "80", _
"80", "80", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0")
arr2 = Array("0", "0", "50")
For i = 1 To UBound(arr1)
    ListView1.ColumnHeaders.Add , , "Başlık" & i + 1, arr1(i)
    If i <= 2 Then ListView2.ColumnHeaders.Add , , "Başlık" & i + 1, arr2(i)
Next
End Sub
 
dosya eklendi

üşenmekten değilde kafa karıştırmak istemediğim için eklememiştim
dosya ektedir.
saygılar
1) BUTONA BASIP FORM AÇILDIĞINDA
FORM 1 LİST VİEW
SİRKET VERİ TABANINDAN VERİLERİ ALACAK
SÜTÜN BAŞLIKLARI VERİ TABANINDAN DEĞİL .ADD İLE OLMALI AMA YAPAMADIM
2) FORM 1 MENÜ FRAMEİNDEKİ M BUTONUNA BASILDIĞINDA
FORM2 LİSTVİEW1 VERİLERİ MUSTERİ VERİ TABANINDAN VERİ ALACAK
SÜTÜN BAŞLIKLARI VERİ TABANINDAN DEĞİL .ADD İLE OLMALI AMA YAPAMADIM
form 2 deki listbox 1 i açmak için ComboBox3 çift tıklamak gereklidir
3)listviewlere cift tıklandıgında kutular dolacak
4) - 2 formdada
commandbutton1 (çift tıklanarak kutulara gelen verileri) değiştirecek
commandbutton2 (çift tıklanarak kutulara gelen verileri) silecek
commandbutton3 yeni girilen bilgileri kayıt edecek.
 

Ekli dosyalar

Sorularınızı maddeler halinde sıralarsanız kimse yapmaya yanaşmaz.
Çünkü 1 soruya cevap değil 4-5 soruya yanıt vercektir şahıs.
Oysa belki cevap vermek isteyen kişi sadece 1 soruya cevap verip gitmek isteyecektir.
Ama siz yinede şansınızı deneyin.Belkide cevap alabilirsiniz.
Kolay gelsin.:cool:
 
yeni soru

peki şöyle sorayım o zaman
ekteki dosyada butona basıldığında acılacak formdaki listview1e acces veri tabaınından nasıl veri aldırabilirim.
2 farklı veri tabanı bulunmakta ve listview musteri isimli dosyadan veri alacak
 

Ekli dosyalar

Dosyanız ektedir.
Müşteri bilgilerini alıyor.Veritabanı mdb dıosyasından.:cool:
 
form1 listview1e veri almak

hocam elinize saglık tesekkur edrim
form 2 icindeki aksaklaıkları yeni baglantı tanımlayarak hallettim ama
mazur gorun (listvew nesnesi ile yeni calısmaya basladım.bazı seyleri anlayamadım/yapamadım)
form1 listview1 nesnesine sirker veri tabaınından nasıl veri almam icin nasıl bir kod yazmam gerekli
yardımcı olursanız sevinirim
saygılar
 
hocam elinize saglık tesekkur edrim
form 2 icindeki aksaklaıkları yeni baglantı tanımlayarak hallettim ama
mazur gorun (listvew nesnesi ile yeni calısmaya basladım.bazı seyleri anlayamadım/yapamadım)
form1 listview1 nesnesine sirker veri tabaınından nasıl veri almam icin nasıl bir kod yazmam gerekli
yardımcı olursanız sevinirim
saygılar

Dosyayı güncelledim.
7 nolu mesajdan indirebilirisniz.:cool:
 
Dosyanız ektedir.:cool:
 

Ekli dosyalar

bende bi eksiklik varda anlayamıyorum

hocam elinize saglık kodlar mukemmel calısıyor
tabii program geliştikce bende sizin yazdığınız kodları diğer formlara uygulamaya çalışıyorum örnk:

form3 e

Private baglan As Object, rs As Object
Sub baglanti()
Set baglan = CreateObject("adodb.connection")
baglan.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & "\sirket.mdb"
End Sub

Private Sub ListView1_BeforeLabelEdit(Cancel As Integer)

End Sub

Private Sub ListView1_DblClick()
Unload Me
UserForm4.Show
End Sub

Private Sub UserForm_Initialize()
Dim x As Long, k As Integer, renk
Set baglan = CreateObject("adodb.connection")
baglan.Open "provider=microsoft.jet.oledb.4.0;data source=" & ThisWorkbook.Path & "\sirket.mdb"
Set rs = CreateObject("adodb.recordset")
ListView1.View = lvwReport
ListView1.FullRowSelect = True
ListView1.Gridlines = True
ListView1.Font.Bold = True
With ListView1.ColumnHeaders
.Add , , "kimlik", 0
.Add , , "KODU", 50
.Add , , "ADI/ÜNVANI", 80
End With
rs.Open "Select * from sirket;", baglan, 1, 1
If rs.RecordCount > 0 Then rs.movefirst
Do While Not rs.EOF
x = x + 1
If x Mod 2 = 0 Then renk = &H80000012 Else: renk = &H80000012
ListView1.ListItems.Add , , rs(0).Value
For k = 1 To 3
If Not IsNull(rs(k).Value) Then
ListView1.ListItems(x).SubItems(k) = rs(k).Value
ListView1.ListItems(x).ListSubItems(k).ForeColor = renk
End If
Next k
rs.movenext
Loop
rs.Close
End Sub
kodunu yazıyorum ama hata alıyorum ve form açılmıyor
zahmet olmayacaksa lutfen bundan sonraki çalışmalar içinde nayi neden nereye yazmam gerektiğini bana anlatırmısınız bi türlü listview nesnesini beceremedim
 

Ekli dosyalar

Hata şurada kırımız yerde 3 yazmışsınız.
bu durmda listviewde koln sayısı 4 oluyor.Çünkü ilk aldığınız
listitems.add,,text
bu yukarıdaki de 1 sütuna yazılıyor.
oysa siz columnheaders add ile 3 kolon almışsınız.Bu durmda kolan sayısı fazla yapmış oluyorsunuz.Oradnda hat oluyor.
Aşağıdaki ile değiştirin işlem tamamdır.:cool:
Kod:
With ListView1.ColumnHeaders
.Add , , "kimlik", 0
.Add , , "KODU", 50
.Add , , "ADI/ÜNVANI", 80
End With
rs.Open "Select * from sirket;", baglan, 1, 1
If rs.RecordCount > 0 Then rs.movefirst
Do While Not rs.EOF
x = x + 1
If x Mod 2 = 0 Then renk = &H80000012 Else: renk = &H80000012
ListView1.ListItems.Add , , rs(0).Value

For k = 1 To [B][COLOR="Red"]2[/COLOR][/B]
If Not IsNull(rs(k).Value) Then
ListView1.ListItems(x).SubItems(k) = rs(k).Value
ListView1.ListItems(x).ListSubItems(k).ForeColor = renk
End If
Next k
 
Geri
Üst