Bu konu ;
Bi fikrim geldi Kod Arşivi konusunun içeriğinin farklı yönlere olumlu yada olumsuz saptırılmaması (konunun dağılmaması) için ilgili konudan ayrılması gereken cevapların depolandığı bölüm olacaktır...
Kolay gelsin , iyi çalışmalar.
=============================================================================
Private Sub CommandButton1_Click()
'Bir butonumuz var o butona tıklayınca sırası ile aşağıdaki işlemler gerçekleşecek
Dim Baglanti As Object, KayitSeti As Object
'Baglantı ve KayitSeti nesnelerini tanımlıyoruz
Set Baglanti = CreateObject("adodb.connection")
'Bağlantı nesnesinin türünü belirliyoruz
Set KayitSeti = CreateObject("adodb.recordset")
'KayıtSeti nesnesinin türünü belirliyoruz
strFirma = Format(Sheets("SETUP").Range("B5"), "000")
'İlgili EXCEL çalışma kitabında SETUP adında bir sayfa var,Bu sayfadaki B5 hücresine LOGO Firma numarasını yazacağız
strServer = Sheets("SETUP").Range("B1").Value
'İlgili EXCEL çalışma kitabında SETUP adında bir sayfa var,Bu sayfadaki B1 hücresine LOGO nun SERVER IP sini yazacağız
strDatabase = Sheets("SETUP").Range("B4").Value
'İlgili EXCEL çalışma kitabında SETUP adında bir sayfa var,Bu sayfadaki B4 hücresine LOGO nun DATABASE adını yazacağız
strKullanıcı = Sheets("SETUP").Range("B2").Value
'İlgili EXCEL çalışma kitabında SETUP adında bir sayfa var,Bu sayfadaki B2 hücresine SQL in USER adını yazacağız
strParola = Sheets("SETUP").Range("B3").Value
'İlgili EXCEL çalışma kitabında SETUP adında bir sayfa var,Bu sayfadaki B3 hücresine SQL USER ının şifresini yazacağız
tarih1 = Format(Range("I2"), "yyyy-mm-dd")
'İlgili EXCEL çalışma kitabında verilerin listeleneceği bir sayfa var,Bu sayfadaki I2 hücresine TARİH yazacağız , formatı GG.AA.YY şeklinde olacak
'tarih2 = Format(Range("B1"), "yyyy-mm-dd")
'dbo.LG_311_01_INVOICE.DATE_ BETWEEN '" & tarih1 & "' AND '" & tarih2 & "'
' S değişkeni ve değişkenin alacağı değeri getiren T-SQL kodunu VBA formatında yazıyoruz
S = "SELECT CEK_KART.PORTFOYNO AS PortfoyNo, CEK_KART.SERINO AS SeriNo, CEK_KART.DOC AS Türü, CEK_KART.CURRSTAT AS Statüsü, "
S = S & "CEK_KART.DUEDATE AS Vade, CEK_KART.SETDATE AS Tarih1, CEK_KART.AMOUNT AS Tutar, MAX(ROLLER.STATNO) AS Hareket, "
S = S & "CARI.CODE AS [Cari Kodu], CARI.DEFINITION_ AS Ünvanı, ROLLER.RECSTATUS, CEK_KART.OURBANKREF, CEK_KART.BANKNAME, "
S = S & "CEK_KART.SPECODE, CEK_KART.CYPHCODE, CEK_KART.CITY, CEK_KART.OWING, CEK_KART.KEFIL, CEK_KART.MUHABIR, CEK_KART.BRANCH, "
S = S & "CEK_KART.DEVIR, CEK_KART.INUSE, CEK_KART.EXTENREF, CEK_KART.CAPIBLOCK_CREATEDBY, CEK_KART.CAPIBLOCK_CREADEDDATE, "
S = S & "CEK_KART.CAPIBLOCK_CREATEDHOUR, CEK_KART.CAPIBLOCK_CREATEDMIN, CEK_KART.CAPIBLOCK_CREATEDSEC, "
S = S & "CEK_KART.CAPIBLOCK_MODIFIEDBY, CEK_KART.CAPIBLOCK_MODIFIEDDATE, CEK_KART.CAPIBLOCK_MODIFIEDHOUR, "
S = S & "CEK_KART.CAPIBLOCK_MODIFIEDMIN, CEK_KART.CAPIBLOCK_MODIFIEDSEC, CEK_KART.COLLREPRATE, CEK_KART.COLLTRRATE, "
S = S & "CEK_KART.CANCELLED, CEK_KART.LINEEXCTYP, CEK_KART.TEXTINC, CEK_KART.SITEID, CEK_KART.RECSTATUS AS Expr1, "
S = S & "CEK_KART.ORGLOGICREF, CEK_KART.WFSTATUS, CEK_KART.BNBRANCHNO, CEK_KART.BNACCOUNTNO, CEK_KART.DEPTADDR1, "
S = S & "CEK_KART.DEPTADDR2, CEK_KART.DEPTCITY, CEK_KART.DEPTCITYCODE, CEK_KART.DEPTCOUNTRY, CEK_KART.DEPTCOUNTRYCODE, "
S = S & "CEK_KART.DEPTPOSTCODE, CEK_KART.DEPTTELNRS1, CEK_KART.DEPTTELNRS2, CEK_KART.DEPTFAXNR, CEK_KART.DEPTTOWN, "
S = S & "CEK_KART.DEPTTOWNCODE, CEK_KART.DEPTDISTRICT, CEK_KART.DEPTDISTRICTCODE, CEK_KART.OPSTAT, CEK_KART.PRINTCNT, "
S = S & "CEK_KART.NEWSERINO, CEK_KART.PROJECTREF, CEK_KART.FAXCODE, CEK_KART.TELCODES2, CEK_KART.TELCODES1, "
S = S & "CEK_KART.COLLATCARDREF , CEK_KART.COLLATROLLREF, CEK_KART.AFFECTCOLLATRL, CEK_KART.AFFECTRISK "
S = S & "FROM LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_CLCARD CARI INNER JOIN "
S = S & "LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_CSTRANS ROLLER ON CARI.LOGICALREF = ROLLER.CARDREF INNER JOIN "
S = S & "LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_CSCARD CEK_KART ON ROLLER.CSREF = CEK_KART.LOGICALREF "
S = S & "GROUP BY CEK_KART.PORTFOYNO, CEK_KART.SERINO, CEK_KART.DOC, CEK_KART.CURRSTAT, CEK_KART.DUEDATE, CEK_KART.SETDATE, CARI.CODE, "
S = S & "CARI.DEFINITION_, CEK_KART.AMOUNT, ROLLER.RECSTATUS, CEK_KART.OURBANKREF, CEK_KART.BANKNAME, CEK_KART.SPECODE, "
S = S & "CEK_KART.CYPHCODE, CEK_KART.CITY, CEK_KART.OWING, CEK_KART.KEFIL, CEK_KART.MUHABIR, CEK_KART.BRANCH, CEK_KART.DEVIR, "
S = S & "CEK_KART.INUSE, CEK_KART.EXTENREF, CEK_KART.CAPIBLOCK_CREATEDBY, CEK_KART.CAPIBLOCK_CREADEDDATE, "
S = S & "CEK_KART.CAPIBLOCK_CREATEDHOUR, CEK_KART.CAPIBLOCK_CREATEDMIN, CEK_KART.CAPIBLOCK_CREATEDSEC, "
S = S & "CEK_KART.CAPIBLOCK_MODIFIEDBY, CEK_KART.CAPIBLOCK_MODIFIEDDATE, CEK_KART.CAPIBLOCK_MODIFIEDHOUR, "
S = S & "CEK_KART.CAPIBLOCK_MODIFIEDMIN, CEK_KART.CAPIBLOCK_MODIFIEDSEC, CEK_KART.COLLREPRATE, CEK_KART.COLLTRRATE, "
S = S & "CEK_KART.CANCELLED, CEK_KART.LINEEXCTYP, CEK_KART.TEXTINC, CEK_KART.SITEID, CEK_KART.RECSTATUS, CEK_KART.ORGLOGICREF, "
S = S & "CEK_KART.WFSTATUS, CEK_KART.BNBRANCHNO, CEK_KART.BNACCOUNTNO, CEK_KART.DEPTADDR1, CEK_KART.DEPTADDR2, "
S = S & "CEK_KART.DEPTCITY, CEK_KART.DEPTCITYCODE, CEK_KART.DEPTCOUNTRY, CEK_KART.DEPTCOUNTRYCODE, CEK_KART.DEPTPOSTCODE, "
S = S & "CEK_KART.DEPTTELNRS1, CEK_KART.DEPTTELNRS2, CEK_KART.DEPTFAXNR, CEK_KART.DEPTTOWN, CEK_KART.DEPTTOWNCODE, "
S = S & "CEK_KART.DEPTDISTRICT, CEK_KART.DEPTDISTRICTCODE, CEK_KART.OPSTAT, CEK_KART.PRINTCNT, CEK_KART.NEWSERINO, "
S = S & "CEK_KART.PROJECTREF, CEK_KART.FAXCODE, CEK_KART.TELCODES2, CEK_KART.TELCODES1, CEK_KART.COLLATCARDREF, "
S = S & "CEK_KART.COLLATROLLREF , CEK_KART.AFFECTCOLLATRL, CEK_KART.AFFECTRISK HAVING (CEK_KART.DUEDATE >= "
S = S & "CONVERT(DATETIME, '" & tarih1 & "', 102)) AND (CEK_KART.DOC = 2) AND (ROLLER.RECSTATUS IN (1, 2))"
Baglanti.Open "Provider=SQLOLEDB; Data Source=" & strServer & "; Initial Catalog=" & strDatabase & "; User ID=" & strKullanıcı & "; Password=" & strParola & ";"
'Bağlantı Nesnesini açıyoruz.
KayitSeti.Open S, Baglanti, 1, 1
'Kayıt Seti Nesnesini açıyoruz.
Range("A9:IV65536").ClearContents
'Tarih kıstasına göre butona her tıklandığında veriler yeniden listeleneceği için , daha önceki çok verinin üzerine az veri yazılması gerekebilir...listelenen verileri sildiriyoruz..tekrar yazdırıyoruz.
Cells(9, 1).CopyFromRecordset KayitSeti
'KayıtSeti nesnesinin SQL sorgusundan çektiği bilgilerin , verilerin listeleneceği sayfada 9.cu satır 1.ci sütundan itibaren listelenebilmesi için
KayitSeti.Close
Baglanti.Close
Set KayitSeti = Nothing
Set Baglanti = Nothing
strFirma = vbNullString
strServer = vbNullString
strDatabase = vbNullString
strParola = vbNullString
strKullanıcı = vbNullString
S = vbNullString
End Sub
======================================================0
Katkılarından Dolayı
EXCELVBA.NET den TARKAN VURAL Bey'e , EXCELWEB.TR dan TARKAN VURAL Bey'e ve SQLEXCEL.NET e , Gelişim platformundan üstad DR.CENK İLTİR'e teşekkürler...