Excel Ado Kullanımı - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html) +--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html) +--- Konu Başlığı: Excel Ado Kullanımı (/konu-excel-ado-kullanimi.html) |
Excel Ado Kullanımı - accessman - 18/01/2020 Arkadaşlar elimizdeki kodu analiz etmeme yardımcı olur musunuz kod şudur Private Sub connectExcelSheet() Dim Sql As String Dim BasTarih As Long, BitTarih As Long Dim VTSonSatir As Long Dim ADO_RS As ADODB.Recordset Dim ADO_CN As ADODB.Connection Dim ToplamTutar As Double ' ToplamTutar = 0 VTSonSatir = Sheets("DetayVeri").Cells(1048576, 8).End(xlUp).Row BasTarih = Cells(1, Selection.Column) BitTarih = Cells(2, Selection.Column) Sql = "SELECT TARIH, NAKIT_AKIS_KODU, HESAP_KODU, HESAP_ADI, ACIKLAMA, Doviz_TL, Doviz_USD, Doviz_EURO " Sql = Sql & vbCrLf Sql = Sql & "FROM [DetayVeri$E10:AH" & VTSonSatir & "] " Sql = Sql & vbCrLf Sql = Sql & "WHERE SUBE_UNVAN = '" & Cells(Selection.Row, 11) & "' " Sql = Sql & "AND RaporGrupKodu = '" & Cells(Selection.Row, 12) & "' " Sql = Sql & "AND YilAyGun Between " & BasTarih & " AND " & BitTarih & " " Sql = Sql & vbCrLf Sql = Sql & "ORDER BY TARIH " Cells(1, 1) = SQL ' Set ADO_RS = New ADODB.Recordset Set ADO_CN = New ADODB.Connection ADO_CN.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.FullName & ";extended properties=""excel 8.0;hdr=yes""" ADO_CN.Open ADO_RS.Open SQL, ADO_CN, 3, 1 ' ' Eğer Hiç Kayıt Yoksa If ADO_RS.RecordCount = 0 Then ADO_RS.Close ADO_CN.Close Set ADO_RS = Nothing Set ADO_CN = Nothing MsgBox "Kayıt Bulunamadı.", vbCritical, "Veri Yok" Exit Sub End If ADO_RS.MoveFirst Do While Not ADO_RS.EOF Lst_Detay.AddItem ' Lst_Detay.Column(0, Lst_Detay.ListCount - 1) = ADO_RS.Fields("Departman").Value ' Lst_Detay.Column(1, Lst_Detay.ListCount - 1) = ADO_RS.Fields("MuhasebeHesapNo").Value ' Lst_Detay.Column(2, Lst_Detay.ListCount - 1) = Format(ADO_RS.Fields("FullTarih").Value, "DD/MM/YYYY") ' Lst_Detay.Column(3, Lst_Detay.ListCount - 1) = ADO_RS.Fields("FisNo").Value ' Lst_Detay.Column(4, Lst_Detay.ListCount - 1) = ADO_RS.Fields("Aciklama").Value ' Lst_Detay.Column(5, Lst_Detay.ListCount - 1) = Format(ADO_RS.Fields("Tutar_TL").Value, "#,###.00") ' ToplamTutar = ToplamTutar + ADO_RS.Fields("Tutar_TL").Value ADO_RS.MoveNext Loop Lst_Detay.TextAlign = fmTextAlignRight Txt_KayitSayisi.Text = ADO_RS.RecordCount Txt_ToplamTutar.Text = Format(ToplamTutar, "#,###.00") ADO_RS.Close ADO_CN.Close Set ADO_RS = Nothing Set ADO_CN = Nothing ' 'Lst_Detay.Height = 445 DoEvents End Sub Cvp: Excel Ado Kullanımı - accessman - 18/01/2020 Baştaki tanımlamaları geçelim şuradan başlayalım VTSonSatir = Sheets("DetayVeri").Cells(1048576, 8).End(xlUp).Row "1048576" satır değeri galiba ama o sayfadaki son dolu sayfayı mı yazmış neye göre belirlenmiş "xlUp" de yukarı tara demek heralde ama bunun neden sondan başa olduğunu anlamadım son satır bulmada daha önce paylaşılan farklı kombinasyonlar var ilk boş gördüğünde son satır diye geri dönenler var bana lazım olan belirlenen sutun aralığına göre dolu olan son sutunu bulan cümlecik nedir acaba mesela bu olabilir mi Kod:
Lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row Cvp: Excel Ado Kullanımı - accessman - 18/01/2020 benim işimi görecek herhalde bu modul olabilir sayfadaki sağdan ve alttan en son dolu olan hücrenin satır numarasını buluyor Cvp: Excel Ado Kullanımı - accessman - 18/01/2020 kodu analiz etmeye devam edelim BasTarih = Cells(1, Selection.Column) SQL = Sql & "WHERE SUBE_UNVAN = '" & Cells(Selection.Row, 11) & "' " burada "Selection.Row" ve "Selection.Column" nedir anlamadım muhtemelen bizim tarihleri tuttuğumuz hücrenin satır, sutun numarası ama sonradan girilen bir değer midir yoksa o satırdaki son satır, sutun mudur Cvp: Excel Ado Kullanımı - accessman - 18/01/2020 gelelim Excel cümlesine "from" dan önce yazan bu kısımda SQL = "SELECT TARIH, NAKIT_AKIS_KODU, HESAP_KODU, HESAP_ADI, ACIKLAMA, Doviz_TL, Doviz_USD, Doviz_EURO " bunlar veri aldığımız sutunların ilk hücrelerimi yani sutun başlıklarımı yoksa istediğimiz herhangi bir isim olabilir mi Cvp: Excel Ado Kullanımı - accessman - 18/01/2020 geldik bağlantı cümlesine ADO_CN.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.FullName & ";extended properties=""excel 8.0;hdr=yes""" burada "ThisWorkbook.FullName" değişken midir sabit midir "excel 8.0" kullandığımız excele göre değişen bir değer midir |