MsFlexGrid Ve DataGrid nesnelerine elle veri girilebilrimi?

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
DataGrid ve MsFlex nesnelerine el ile veri girilebilirmi?
Yoksa listviewdeki gibi sadece listelememi yapılıyor bu nesnelerde?
Teşekkür ederim.
 
Katılım
1 Eylül 2005
Mesajlar
283
Excel Vers. ve Dili
microsoft office 2019
merhaba sayın evren gizlen

bu nesnelere vb6 da elle giriş mümkün sadece bildiğim bu nasıl olur diye sorarsanız bilmiyorum.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
merhaba sayın evren gizlen

bu nesnelere vb6 da elle giriş mümkün sadece bildiğim bu nasıl olur diye sorarsanız bilmiyorum.
Sayın masuk500 teşekkür ederim.
Ben elle veri giremedim bu nesnelere
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Evren bey, en basit haliyle şu şekilde yapılabilir.

Bir Userform üzerinde bir adet DataGrid (DataGrid1), bir adet de CommandButton (CommandButton1) nesnesi yerleştirin. Projenize, "Microsoft Activex Data Objects Recordset xx Library" kütüphanesini de ekleyin.

Daha sonra, aşağıdaki kodları, Userform1 modülüne kopyalayın.

Kod:
Option Explicit
Dim rs As ADOR.Recordset
'-----------------------------------
Private Sub CommandButton1_Click()
    rs.AddNew
End Sub
'-----------------------------------
Private Sub UserForm_Initialize()
    Set rs = New ADOR.Recordset
    
    With rs
        
        With .Fields
            .Append "SıraNo", adVarChar, 50
            .Append "Kişi", adVarChar, 50
            .Append "Tarih", adDate
            .Append "Ciro", adCurrency
        End With
        
        .CursorType = adOpenDynamic
        .Open
        .AddNew
    
    End With
    
    Set DataGrid1.DataSource = rs
End Sub
'---------------------------------------
Private Sub UserForm_Terminate()
    Set rs = Nothing
End Sub
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,679
Excel Vers. ve Dili
Excel 2019 Türkçe
Ferhat bey, güzel bir örnek vermişsiniz. Teşekkürler.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ferhat Bey Çok teşekkürler.
Güzel bir örnek vermişsiniz.Peki okumayı nasıl yapabiliriz her sütunda.
Yani yani hücrelerde bulunan verileri nası okuyabiliriz.Birde yeni satır eklemeyi son hücrede entere bastığımızda otomatik ekleyebilrimiyiz?
 
Katılım
2 Temmuz 2005
Mesajlar
24
Excel Vers. ve Dili
Excel 2003-Türkçe
slm arkadaşlar,
örneği çalıştıramadım;benim kontrollerim arasında datagrid görünmüyor. nasıl ekleyebilim?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ferhat Bey Çok teşekkürler.
Güzel bir örnek vermişsiniz.Peki okumayı nasıl yapabiliriz her sütunda.
Yani yani hücrelerde bulunan verileri nası okuyabiliriz.Birde yeni satır eklemeyi son hücrede entere bastığımızda otomatik ekleyebilrimiyiz?
Evren bey,

Çalışma kitabının aktif sheet'inin A1: D40 aralığında, (ilk satır başlıklar olmak üzere) verilerimizin olduğunu varsayarsak,

Bu verilerin DataGrid üzerine çekilmesi ve DataGrid'in son satırına veri girildikten sonra, otomatik olarak yeni bir kayıt (satır) eklenmesi için kodlar şu şekilde olmalıdır.

Kod:
Option Explicit
Dim rs As ADOR.Recordset
'---------------------------------
Private Sub DataGrid1_AfterColEdit(ByVal ColIndex As Integer)
[COLOR=darkgreen]  'Eğer DataGrid editlendikten sonra[/COLOR]
 
[COLOR=darkgreen]  'Editlenen satır (kayıt),[/COLOR]
[COLOR=darkgreen]  'Recorset'in kayıt sayısı kadarsa[/COLOR]
[COLOR=darkgreen]  '-ki bu durumda son satır oluyor[/COLOR]
    If DataGrid1.Bookmark = rs.RecordCount Then
        'Yeni bir kayıt (satır) ilave et.
        rs.AddNew
    End If
End Sub
'----------------------------------
Private Sub UserForm_Initialize()
 
    Dim rg As Range
    Dim hcr As Range
    Dim y&
 
[COLOR=darkgreen]  'Yeni bir Recordset nesnesi yaratılıyor[/COLOR]
    Set rs = New ADOR.Recordset
 
    With rs
[COLOR=darkgreen]      'Recordset alanları oluşturuluyor[/COLOR]
        With .Fields
            .Append "SıraNo", adVarChar, 50
            .Append "Kişi", adVarChar, 50
            .Append "Tarih", adDate
            .Append "Ciro", adCurrency
        End With
 
[COLOR=darkgreen]      'Recordset açıklıyor[/COLOR]
        .CursorType = adOpenDynamic
        .Open
 
[COLOR=darkgreen]      'Sayfa üzerinden alınacak alan oluşturuluyor[/COLOR]
        Set rg = Range("A2:D40")
 
[COLOR=darkgreen]      'Alan içerisindeki herbir hücre değeri,[/COLOR]
[COLOR=darkgreen]      'denk gelen recordset alanına atanıyor[/COLOR]
        For Each hcr In rg.Cells
            y = y + 1
            If y = 1 Then rs.AddNew
            rs(y - 1) = hcr
            If y = 4 Then y = 0
        Next
 
    End With
 
[COLOR=darkgreen]  'DataGrid'in veri kaynağını[/COLOR]
[COLOR=darkgreen]  'az önce oluşturduğumuz Recordset olarak gösteriyoruz[/COLOR]
    Set DataGrid1.DataSource = rs
 
[COLOR=darkgreen]  'Alandaki tüm değerler DataGrid'e aktarıldıktan sonra[/COLOR]
[COLOR=darkgreen]  'tüm verilerin altına yeni bir kayıt(satır)[/COLOR]
    rs.AddNew
 
[COLOR=darkgreen]  'Şekil şemal yapılıyor[/COLOR]
    Me.Caption = "DataGrid Örneği"
    DataGrid1.Caption = ""
 
End Sub
'-----------------------------------------
Private Sub UserForm_Terminate()
[COLOR=darkgreen]  'Recordset ipini koparıyor :)[/COLOR]
    Set rs = Nothing
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ferhat bey güzel çalışmanız için teşekür ederim.
Yalnız İlk kayıt eklendiğinde entere basınca alt satıra geçiyor.
Oda ilk sütundayken atlıyor.
Sayfa mantığına göre şöyle olmalı:Eğer aktif hücre son sütundaysa entere basıldıysa veya tab tuşuna basıldıysa eğer son satırsa yeni bir satır oluştur ve imleci yeni oluşturulan satırn ilk sütununa konumlandır.Son satır değilse,Bir alt satırdaki ilk sütuna konumlandır.
 
Katılım
2 Temmuz 2005
Mesajlar
24
Excel Vers. ve Dili
Excel 2003-Türkçe
Son düzenleme:
Üst