• DİKKAT

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

spreadsheet.datasource Hakkında.

  • Konbuyu başlatan Konbuyu başlatan Rafet
  • Başlangıç tarihi Başlangıç tarihi
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Normalde excel sayfasında bu şekilde güncellemer yapıp SQL den veri cağırıyoruz.
Userformda spreadsheet 'i kullanarak excel sayfasıyla ilişkilendirmeden işlem yapmak istiyorum. spreadsheet'e verileri belli değişkenleri textbox'lardan göstererek halletmek istiyordum. Fakat spreadsheet'in bağlantısını ve view'ini değiştirmeyi başaramadım.



--- BU CUMLE OUERY TABLOYU GUNCELLERKEN GERCEKLEŞTIRDIĞIM KODLAR.
Kod:
With Sheets("Alacak").Range("Alacak_Sorgu_01").QueryTable
        .Connection = _
        "" & baglanti & ""
        .CommandText = Array( _
        " SELECT A.C_S ,SUM(TUTAR) TUTAR ,A.DURUM ,TURU " _
        , " FROM dbo.Z_TKM_M_SENCEK A " _
        , " GROUP BY A.C_S ,A.DURUM ,TURU" _
        , " ORDER BY A.C_S ,A.DURUM ,TURU  " _
        )
        Range("Aalacak_Son_CalisanView") = .CommandText
        .Refresh BackgroundQuery:=False
End With

--- BU KONDLARA BENZEYECEĞİNİ DÜŞÜNEREK BU ŞEKİLDE YAPMAK İSTEDİM AMA ÇALIŞMADI. hATA VERDİ.
Kod:
With USEFORM1.spreadsheet.datasource
        .Connection = _
        "" & baglanti & ""
        .CommandText = Array( _
        " SELECT A.C_S ,SUM(TUTAR) TUTAR ,A.DURUM ,TURU " _
        , " FROM dbo.Z_TKM_M_SENCEK A " _
        , " GROUP BY A.C_S ,A.DURUM ,TURU" _
        , " ORDER BY A.C_S ,A.DURUM ,TURU  " _
        )
        Range("Aalacak_Son_CalisanView") = .CommandText
        .Refresh BackgroundQuery:=False
End With
 
DataSource özelliğine Recordset atayabilirsiniz.
Not: Cursor client moduna çevrilmesi gerekebilir.
Kod:
Set Spreadsheet1.DataSource = rst

Aşağıdaki linkte de CopyFromRecordset metodu kullanılmış.

http://excelkb.com/article.aspx?id=10190
 
İlginiz için teşekkürler.
Recortset kullanan biri değilim.
vb ile başlangıcım sadece excel ve vbe den başkada çalışmadım.

Recordset ile ilgili daha önce birkaç şey okudum onları tekrar gözden gecirem gerekecek.

Tekrar teşekkürler.
 
Update işlemi için yine excel.web.tr de bulup kullandığım kodlar vardı.
Buları günler geçtikce geliştirdim. Recordset kullndığımı biliyordum Ama hiç bilgi çağırmak için kullanmamıştım.

Sizin Set Spreadsheet1.DataSource = rst kodunuz bende aşağıdaki kodu kafamda soru işareti oluşturdu. Ve cevap olarak aşağıdaki kod ortaya cıktı ve çalışıtı.

Kod:
  'SQL Bağlantısına Başlıyoruzzzzz -------------------------------
        Set cnt = New ADODB.Connection
        Set rst = New ADODB.Recordset
        strConn = "PROVIDER=SQLOLEDB;"
        strConn = strConn & "DATA SOURCE='" & server & "';DATABASE=" & database & ";Auto Translate=False;"
        strConn = strConn & "user id=" & kullanici & ";password='" & sssss & "';trusted_connection=False;"
        cnt.ConnectionString = strConn

'------------------------------------------------------------------------------------
        stSQL = " select * from tblcasabit WHERE CARI_KOD='B15568' "
        
        'connection'u aç
        cnt.Open
        'kayıtları işle [kayıtları işleden değilde şu an kayıtları cağır olmuş oluyor .]
        rst.Open stSQL, cnt, 1, 3
        
'işte bu kod. Yanlız hemen yukardaki cnt,1 ,3  teki 1 ve 3 ün ne anlama geldiğini merak ettim. 
        CalismaAlani_Sip_StokKodu.Spreadsheet_Sip_StokKodlari.DataSource = rst
        
        'connection ile recordset'leri boşalt
        Set rst = Nothing
        Set cnt = Nothing
 
Tebrik ederim. 1 ve 3 ün anlamını şuradan öğrenebilirsiniz.

ADO Cursor & Lock Types
 
Geri
Üst