• DİKKAT

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

Uzun SQL kodunu VBA kodlarına uyarlamak

Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Kod:
Private Sub CommandButton1_Click()
Dim Baglanti As New ADODB.Connection
    Dim KayitSeti As New ADODB.Recordset
    Dim Firma As String, Server As String, Database As String, Kullanıcı As String, Parola As String
    
    Firma = Format(Sheets("SETUP").Range("B5"), "000")
    Server = Sheets("SETUP").Range("B1").Value
    Database = Sheets("SETUP").Range("B4").Value
    Kullanıcı = Sheets("SETUP").Range("B2").Value
    Parola = Sheets("SETUP").Range("B3").Value
    
    Sorgu = "SELECT CEK_KART.PORTFOYNO AS PortfoyNo, CEK_KART.SERINO AS SeriNo, CEK_KART.DOC AS Türü, CEK_KART.CURRSTAT AS Statüsü,"
                      CEK_KART.DUEDATE AS Vade, CEK_KART.SETDATE AS Tarih1, CEK_KART.AMOUNT AS Tutar, MAX(ROLLER.STATNO) AS Hareket,
                      CARI.CODE AS [Cari Kodu], CARI.DEFINITION_ AS Ünvanı, ROLLER.RECSTATUS, CEK_KART.OURBANKREF, CEK_KART.BANKNAME,
                      CEK_KART.SPECODE, CEK_KART.CYPHCODE, CEK_KART.CITY, CEK_KART.OWING, CEK_KART.KEFIL, CEK_KART.MUHABIR, CEK_KART.BRANCH,
                      CEK_KART.DEVIR, CEK_KART.INUSE, CEK_KART.EXTENREF, CEK_KART.CAPIBLOCK_CREATEDBY, CEK_KART.CAPIBLOCK_CREADEDDATE,
                      CEK_KART.CAPIBLOCK_CREATEDHOUR, CEK_KART.CAPIBLOCK_CREATEDMIN, CEK_KART.CAPIBLOCK_CREATEDSEC,
                      CEK_KART.CAPIBLOCK_MODIFIEDBY, CEK_KART.CAPIBLOCK_MODIFIEDDATE, CEK_KART.CAPIBLOCK_MODIFIEDHOUR,
                      CEK_KART.CAPIBLOCK_MODIFIEDMIN, CEK_KART.CAPIBLOCK_MODIFIEDSEC, CEK_KART.COLLREPRATE, CEK_KART.COLLTRRATE,
                      CEK_KART.CANCELLED, CEK_KART.LINEEXCTYP, CEK_KART.TEXTINC, CEK_KART.SITEID, CEK_KART.RECSTATUS AS Expr1,
                      CEK_KART.ORGLOGICREF, CEK_KART.WFSTATUS, CEK_KART.BNBRANCHNO, CEK_KART.BNACCOUNTNO, CEK_KART.DEPTADDR1,
                      CEK_KART.DEPTADDR2, CEK_KART.DEPTCITY, CEK_KART.DEPTCITYCODE, CEK_KART.DEPTCOUNTRY, CEK_KART.DEPTCOUNTRYCODE,
                      CEK_KART.DEPTPOSTCODE, CEK_KART.DEPTTELNRS1, CEK_KART.DEPTTELNRS2, CEK_KART.DEPTFAXNR, CEK_KART.DEPTTOWN,
                      CEK_KART.DEPTTOWNCODE, CEK_KART.DEPTDISTRICT, CEK_KART.DEPTDISTRICTCODE, CEK_KART.OPSTAT, CEK_KART.PRINTCNT,
                      CEK_KART.NEWSERINO, CEK_KART.PROJECTREF, CEK_KART.FAXCODE, CEK_KART.TELCODES2, CEK_KART.TELCODES1,
                      CEK_KART.COLLATCARDREF , CEK_KART.COLLATROLLREF, CEK_KART.AFFECTCOLLATRL, CEK_KART.AFFECTRISK
FROM         LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_CLCARD CARI INNER JOIN
                      LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_CSTRANS ROLLER ON CARI.LOGICALREF = ROLLER.CARDREF INNER JOIN
                      LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_CSCARD CEK_KART ON ROLLER.CSREF = CEK_KART.LOGICALREF
GROUP BY CEK_KART.PORTFOYNO, CEK_KART.SERINO, CEK_KART.DOC, CEK_KART.CURRSTAT, CEK_KART.DUEDATE, CEK_KART.SETDATE, CARI.CODE,
                      CARI.DEFINITION_, CEK_KART.AMOUNT, ROLLER.RECSTATUS, CEK_KART.OURBANKREF, CEK_KART.BANKNAME, CEK_KART.SPECODE,
                      CEK_KART.CYPHCODE, CEK_KART.CITY, CEK_KART.OWING, CEK_KART.KEFIL, CEK_KART.MUHABIR, CEK_KART.BRANCH, CEK_KART.DEVIR,
                      CEK_KART.INUSE, CEK_KART.EXTENREF, CEK_KART.CAPIBLOCK_CREATEDBY, CEK_KART.CAPIBLOCK_CREADEDDATE,
                      CEK_KART.CAPIBLOCK_CREATEDHOUR, CEK_KART.CAPIBLOCK_CREATEDMIN, CEK_KART.CAPIBLOCK_CREATEDSEC,
                      CEK_KART.CAPIBLOCK_MODIFIEDBY, CEK_KART.CAPIBLOCK_MODIFIEDDATE, CEK_KART.CAPIBLOCK_MODIFIEDHOUR,
                      CEK_KART.CAPIBLOCK_MODIFIEDMIN, CEK_KART.CAPIBLOCK_MODIFIEDSEC, CEK_KART.COLLREPRATE, CEK_KART.COLLTRRATE,
                      CEK_KART.CANCELLED, CEK_KART.LINEEXCTYP, CEK_KART.TEXTINC, CEK_KART.SITEID, CEK_KART.RECSTATUS, CEK_KART.ORGLOGICREF,
                      CEK_KART.WFSTATUS, CEK_KART.BNBRANCHNO, CEK_KART.BNACCOUNTNO, CEK_KART.DEPTADDR1, CEK_KART.DEPTADDR2,
                      CEK_KART.DEPTCITY, CEK_KART.DEPTCITYCODE, CEK_KART.DEPTCOUNTRY, CEK_KART.DEPTCOUNTRYCODE, CEK_KART.DEPTPOSTCODE,
                      CEK_KART.DEPTTELNRS1, CEK_KART.DEPTTELNRS2, CEK_KART.DEPTFAXNR, CEK_KART.DEPTTOWN, CEK_KART.DEPTTOWNCODE,
                      CEK_KART.DEPTDISTRICT, CEK_KART.DEPTDISTRICTCODE, CEK_KART.OPSTAT, CEK_KART.PRINTCNT, CEK_KART.NEWSERINO,
                      CEK_KART.PROJECTREF, CEK_KART.FAXCODE, CEK_KART.TELCODES2, CEK_KART.TELCODES1, CEK_KART.COLLATCARDREF,
                      CEK_KART.COLLATROLLREF , CEK_KART.AFFECTCOLLATRL, CEK_KART.AFFECTRISK
HAVING      (CEK_KART.DUEDATE >= CONVERT(DATETIME, '2009-02-17 00:00:00', 102)) AND (CEK_KART.DOC = 1) AND (ROLLER.RECSTATUS IN (1, 2))
    
    
    Baglanti.Open "Provider=SQLOLEDB; Data Source=" & Server & "; Initial Catalog=" & Database & "; User ID=" & Kullanıcı & "; Password=" & Parola & ";"
    KayitSeti.Open Sorgu, Baglanti
    
    Cells(8, 1).CopyFromRecordset KayitSeti
    
    KayitSeti.Close
    Baglanti.Close
    Set KayitSeti = Nothing
    Set Baglanti = Nothing
End Sub
Yukarıdaki kodu başka bir bölüm de yayımlamıştım konu ile ilgilenen arkadaşımız ofline olduğundan ve konuyu mümkün mertebe daha hızlı çözüme kavuşturabilmek için yeni konu açmak zorunda hissettim kendimi...

ilgili kodu VBA editör sayfasına kopyaladığınız da kırmızı olarak görünen satırları göreceksiniz...

sizlerden istediğim kırmızı kodların hatasız olarak VBA e adapte edilmesi...veya en azından kırmızı olan 2 satır ile yol gösterilmesi ve kuralın açıklanması , diğer satırlardı da sizlerden gelecek geri döünüşler ile kendim yapabilirim.

ilgilenebilecek arkadaşalara şimdiden teşekkürler...
 
Son düzenleme:
Tekrar Merhabalar ;

Araştırmalarım sonucunda kuralı buldum...

Example.
Dim db as database
Dim rst as recordset

set db=currentdb
set rst = db.openrecordset("select * " & _
"from tblSomeTable " & _
"where somefield=" & somecriteria)
rst.edit
... etc ...




Teşekkürler
 
Tecrübesizlik

Kod:
Private Sub CommandButton1_Click()
Dim Baglanti As New ADODB.Connection
    Dim KayitSeti As New ADODB.Recordset
    Dim Firma As String, Server As String, Database As String, Kullanıcı As String, Parola As String
    
    Firma = Format(Sheets("SETUP").Range("B5"), "000")
    Server = Sheets("SETUP").Range("B1").Value
    Database = Sheets("SETUP").Range("B4").Value
    Kullanıcı = Sheets("SETUP").Range("B2").Value
    Parola = Sheets("SETUP").Range("B3").Value
    
    Sorgu = "SELECT CEK_KART.PORTFOYNO AS PortfoyNo," & _
    "CEK_KART.SERINO AS SeriNo," & _
    "CEK_KART.DOC AS Türü," & _
    "CEK_KART.CURRSTAT AS Statüsü," & _
    "CEK_KART.DUEDATE AS Vade," & _
    "CEK_KART.SETDATE AS Tarih1," & _
    "CEK_KART.AMOUNT AS Tutar," & _
    "MAX(ROLLER.STATNO) AS Hareket," &_
    "CARI.CODE AS [Cari Kodu]," & _
    "CARI.DEFINITION_ AS Ünvanı," & _
    "ROLLER.RECSTATUS," & _
    "CEK_KART.OURBANKREF,&_
    "CEK_KART.BANKNAME," & _
    "CEK_KART.SPECODE," & _
    "CEK_KART.CYPHCODE," & _
    "CEK_KART.CITY," & _
    "CEK_KART.OWING, " & _
    "CEK_KART.KEFIL," & _
    "CEK_KART.BRANCH," & _
    "CEK_KART.DEVIR," & _
    "CEK_KART.INUSE," & _
    "CEK_KART.EXTENREF," & _
    "CEK_KART.CAPIBLOCK_CREATEDBY," &_
    "CEK_KART.CAPIBLOCK_CREADEDDATE ," & _
    "CEK_KART.CAPIBLOCK_CREATEDHOUR," & _
    "CEK_KART.CAPIBLOCK_CREATEDMIN," & _
    "CEK_KART.CAPIBLOCK_CREATEDSEC," & _
    "CEK_KART.CAPIBLOCK_MODIFIEDBY," & _
    "CEK_KART.CAPIBLOCK_MODIFIEDDATE," &
    "CEK_KART.CAPIBLOCK_MODIFIEDHOUR," & _
    "CEK_KART.CAPIBLOCK_MODIFIEDMIN," & _
    "CEK_KART.CAPIBLOCK_MODIFIEDSEC," & _
    "CEK_KART.COLLREPRATE," & _
    "CEK_KART.COLLTRRATE," & _
    "CEK_KART.CANCELLED," & _
    "CEK_KART.LINEEXCTYP," & _
    "CEK_KART.TEXTINC," & _ "CEK_KART.SITEID," & _ "CEK_KART.RECSTATUS AS Expr1," & _
    "CEK_KART.ORGLOGICREF," & _" CEK_KART.WFSTATUS, CEK_KART.BNBRANCHNO, CEK_KART.BNACCOUNTNO, CEK_KART.DEPTADDR1," & _
    "CEK_KART.DEPTADDR2, CEK_KART.DEPTCITY, CEK_KART.DEPTCITYCODE, CEK_KART.DEPTCOUNTRY, CEK_KART.DEPTCOUNTRYCODE," & _
    "CEK_KART.DEPTPOSTCODE, CEK_KART.DEPTTELNRS1, CEK_KART.DEPTTELNRS2, CEK_KART.DEPTFAXNR, CEK_KART.DEPTTOWN," & _
    "CEK_KART.DEPTTOWNCODE, CEK_KART.DEPTDISTRICT, CEK_KART.DEPTDISTRICTCODE, CEK_KART.OPSTAT, CEK_KART.PRINTCNT," & _
    "CEK_KART.NEWSERINO, CEK_KART.PROJECTREF, CEK_KART.FAXCODE, CEK_KART.TELCODES2, CEK_KART.TELCODES1," & _
    "CEK_KART.COLLATCARDREF , CEK_KART.COLLATROLLREF, CEK_KART.AFFECTCOLLATRL, CEK_KART.AFFECTRISK" & _
"FROM         LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_CLCARD CARI INNER JOIN" & _
                      "LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_CSTRANS ROLLER ON CARI.LOGICALREF = ROLLER.CARDREF INNER JOIN " & _
                      "LG_" & Format(Sheets("SETUP").Range("B5"), "000") & "_01_CSCARD CEK_KART ON ROLLER.CSREF = CEK_KART.LOGICALREF" & _
                      "GROUP BY CEK_KART.PORTFOYNO, CEK_KART.SERINO, CEK_KART.DOC, CEK_KART.CURRSTAT, CEK_KART.DUEDATE, CEK_KART.SETDATE, CARI.CODE," & _
                      "CARI.DEFINITION_, CEK_KART.AMOUNT, ROLLER.RECSTATUS, CEK_KART.OURBANKREF, CEK_KART.BANKNAME, CEK_KART.SPECODE," & _
                      "CEK_KART.CYPHCODE, CEK_KART.CITY, CEK_KART.OWING, CEK_KART.KEFIL, CEK_KART.MUHABIR, CEK_KART.BRANCH, CEK_KART.DEVIR," & _
                      "CEK_KART.INUSE, CEK_KART.EXTENREF, CEK_KART.CAPIBLOCK_CREATEDBY, CEK_KART.CAPIBLOCK_CREADEDDATE," & _
                      "CEK_KART.CAPIBLOCK_CREATEDHOUR, CEK_KART.CAPIBLOCK_CREATEDMIN, CEK_KART.CAPIBLOCK_CREATEDSEC," & _
                      "CEK_KART.CAPIBLOCK_MODIFIEDBY, CEK_KART.CAPIBLOCK_MODIFIEDDATE, CEK_KART.CAPIBLOCK_MODIFIEDHOUR," & _
                      "CEK_KART.CAPIBLOCK_MODIFIEDMIN, CEK_KART.CAPIBLOCK_MODIFIEDSEC, CEK_KART.COLLREPRATE, CEK_KART.COLLTRRATE," & _
                      "CEK_KART.CANCELLED, CEK_KART.LINEEXCTYP, CEK_KART.TEXTINC, CEK_KART.SITEID, CEK_KART.RECSTATUS, CEK_KART.ORGLOGICREF," &
                      "CEK_KART.WFSTATUS, CEK_KART.BNBRANCHNO, CEK_KART.BNACCOUNTNO, CEK_KART.DEPTADDR1, CEK_KART.DEPTADDR2," & _
                      "CEK_KART.DEPTCITY, CEK_KART.DEPTCITYCODE, CEK_KART.DEPTCOUNTRY, CEK_KART.DEPTCOUNTRYCODE, CEK_KART.DEPTPOSTCODE," & _
                      "CEK_KART.DEPTTELNRS1, CEK_KART.DEPTTELNRS2, CEK_KART.DEPTFAXNR, CEK_KART.DEPTTOWN, CEK_KART.DEPTTOWNCODE," & _
                      "CEK_KART.DEPTDISTRICT, CEK_KART.DEPTDISTRICTCODE, CEK_KART.OPSTAT, CEK_KART.PRINTCNT, CEK_KART.NEWSERINO," & _
                      "CEK_KART.PROJECTREF, CEK_KART.FAXCODE, CEK_KART.TELCODES2, CEK_KART.TELCODES1, CEK_KART.COLLATCARDREF," & _
                      "CEK_KART.COLLATROLLREF , CEK_KART.AFFECTCOLLATRL, CEK_KART.AFFECTRISK" & _
"HAVING      (CEK_KART.DUEDATE >=" & CONVERT(DATETIME, '2009-02-17 00:00:00', 102)) AND (CEK_KART.DOC ="& 1) AND (ROLLER.RECSTATUS IN (1, 2))"
    
    
    Baglanti.Open "Provider=SQLOLEDB; Data Source=" & Server & "; Initial Catalog=" & Database & "; User ID=" & Kullanıcı & "; Password=" & Parola & ";"
    KayitSeti.Open Sorgu, Baglanti
    
    Cells(8, 1).CopyFromRecordset KayitSeti
    
    KayitSeti.Close
    Baglanti.Close
    Set KayitSeti = Nothing
    Set Baglanti = Nothing
End Sub

Kuralı kendi koduma uygulamaya çalıştım ama sonuç vahim...
üstadlardan yardım bekliyorum...
 
Merhablar;

Belki syntax hatası yapıyorsunuzdur, örneğin gözüme hemen,
"CEK_KART.OURBANKREF,&_
alanında tırnak işreti olmadığı ilişti. Bence tamamen kontrol ediniz..
 
bu syntax ile başım belada , mutlaka kolay bir yolunu bulmalıyım , sabahdan beri yüzlerce kez şu hatayı aldım ve bunaldım...pes ettim...dinlenmeye çekildi...çok yıprandım çok...
 

Ekli dosyalar

  • Systax_Hatası.JPG
    Systax_Hatası.JPG
    6.2 KB · Görüntüleme: 11
Bu kadar dinlendiğim yeter , konunun ehli gelmiş , hoş gelmiş.

selam vermiş sayarım ben sizi

bocunuzu ödeyin...

bir el atın şu kodcağıza

icon10.gif
 
Sayın Isuersoy,

Kod:
sorgu = "SELECT CEK_KART.PORTFOYNO AS PortfoyNo, CEK_KART.SERINO AS SeriNo, CEK_KART.DOC AS Türü, CEK_KART.CURRSTAT AS Statüsü,"
sorgu = sorgu & " CEK_KART.DUEDATE AS Vade, CEK_KART.SETDATE AS Tarih1, CEK_KART.AMOUNT AS Tutar,"
sorgu = sorgu & " MAX(ROLLER.STATNO) AS Hareket, CARI.CODE AS [Cari Kodu], CARI.DEFINITION_ AS Ünvanı,"
sorgu = sorgu & " ROLLER.RECSTATUS, CEK_KART.OURBANKREF, CEK_KART.BANKNAME, CEK_KART.SPECODE,"
sorgu = sorgu & " CEK_KART.CYPHCODE, CEK_KART.CITY, CEK_KART.OWING, CEK_KART.KEFIL,"
sorgu = sorgu & " CEK_KART.BRANCH, CEK_KART.DEVIR, CEK_KART.INUSE, CEK_KART.EXTENREF,"
sorgu = sorgu & " CEK_KART.CAPIBLOCK_CREATEDBY, CEK_KART.CAPIBLOCK_CREADEDDATE , CEK_KART.CAPIBLOCK_CREATEDHOUR,"
sorgu = sorgu & " CEK_KART.CAPIBLOCK_CREATEDMIN, CEK_KART.CAPIBLOCK_CREATEDSEC, CEK_KART.CAPIBLOCK_MODIFIEDBY,"
sorgu = sorgu & " CEK_KART.CAPIBLOCK_MODIFIEDDATE, CEK_KART.CAPIBLOCK_MODIFIEDHOUR, CEK_KART.CAPIBLOCK_MODIFIEDMIN,"
sorgu = sorgu & " CEK_KART.CAPIBLOCK_MODIFIEDSEC, CEK_KART.COLLREPRATE, CEK_KART.COLLTRRATE,"
sorgu = sorgu & " CEK_KART.CANCELLED, CEK_KART.LINEEXCTYP, CEK_KART.TEXTINC, CEK_KART.SITEID, CEK_KART.RECSTATUS AS Expr1,"
sorgu = sorgu & " CEK_KART.ORGLOGICREF, CEK_KART.WFSTATUS, CEK_KART.BNBRANCHNO, CEK_KART.BNACCOUNTNO, CEK_KART.DEPTADDR1,"
sorgu = sorgu & " CEK_KART.DEPTADDR2, CEK_KART.DEPTCITY, CEK_KART.DEPTCITYCODE, CEK_KART.DEPTCOUNTRY, CEK_KART.DEPTCOUNTRYCODE,"
sorgu = sorgu & " CEK_KART.DEPTPOSTCODE, CEK_KART.DEPTTELNRS1, CEK_KART.DEPTTELNRS2, CEK_KART.DEPTFAXNR, CEK_KART.DEPTTOWN,"
sorgu = sorgu & " CEK_KART.DEPTTOWNCODE, CEK_KART.DEPTDISTRICT, CEK_KART.DEPTDISTRICTCODE, CEK_KART.OPSTAT, CEK_KART.PRINTCNT,"
sorgu = sorgu & " CEK_KART.NEWSERINO, CEK_KART.PROJECTREF, CEK_KART.FAXCODE, CEK_KART.TELCODES2, CEK_KART.TELCODES1,"

şeklinde devam ederek yazın. 10 satırdan fazla alt satıra geçilemiyor.

İyi çalışmalar
 
Bu kadar dinlendiğim yeter , konunun ehli gelmiş , hoş gelmiş.

selam vermiş sayarım ben sizi

bocunuzu ödeyin...

bir el atın şu kodcağıza

icon10.gif

Estağfurullah
ADO nesnelerini set etmeyi unutmayalım.
Dener misiniz ?
Kod:
DefStr S
Private Sub CommandButton1_Click()
    Dim Baglanti As Object, KayitSeti As Object
        Set Baglanti = CreateObject("adodb.connection")
            Set KayitSeti = CreateObject("adodb.recordset")

strFirma = Format(Sheets("SETUP").Range("B5"), "000")
    strServer = Sheets("SETUP").Range("B1").Value
        strDatabase = Sheets("SETUP").Range("B4").Value
            strKullanıcı = Sheets("SETUP").Range("B2").Value
                strParola = Sheets("SETUP").Range("B3").Value
    
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, '2009-02-17 00:00:00', 102)) AND (CEK_KART.DOC = 1) AND (ROLLER.RECSTATUS IN (1, 2))"

Baglanti.Open "Provider=SQLOLEDB; Data Source=" & strServer & "; Initial Catalog=" & strDatabase & "; User ID=" & strKullanıcı & "; Password=" & strParola & ";"
    
    KayitSeti.Open sorgu, Baglanti
    
    Cells(8, 1).CopyFromRecordset KayitSeti
    
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
 
Sayın Isuersoy,

Kod:
sorgu = "SELECT CEK_KART.PORTFOYNO AS PortfoyNo, CEK_KART.SERINO AS SeriNo, CEK_KART.DOC AS Türü, CEK_KART.CURRSTAT AS Statüsü,"
sorgu = sorgu & " CEK_KART.DUEDATE AS Vade, CEK_KART.SETDATE AS Tarih1, CEK_KART.AMOUNT AS Tutar,"
sorgu = sorgu & " MAX(ROLLER.STATNO) AS Hareket, CARI.CODE AS [Cari Kodu], CARI.DEFINITION_ AS Ünvanı,"
sorgu = sorgu & " ROLLER.RECSTATUS, CEK_KART.OURBANKREF, CEK_KART.BANKNAME, CEK_KART.SPECODE,"
sorgu = sorgu & " CEK_KART.CYPHCODE, CEK_KART.CITY, CEK_KART.OWING, CEK_KART.KEFIL,"
sorgu = sorgu & " CEK_KART.BRANCH, CEK_KART.DEVIR, CEK_KART.INUSE, CEK_KART.EXTENREF,"
sorgu = sorgu & " CEK_KART.CAPIBLOCK_CREATEDBY, CEK_KART.CAPIBLOCK_CREADEDDATE , CEK_KART.CAPIBLOCK_CREATEDHOUR,"
sorgu = sorgu & " CEK_KART.CAPIBLOCK_CREATEDMIN, CEK_KART.CAPIBLOCK_CREATEDSEC, CEK_KART.CAPIBLOCK_MODIFIEDBY,"
sorgu = sorgu & " CEK_KART.CAPIBLOCK_MODIFIEDDATE, CEK_KART.CAPIBLOCK_MODIFIEDHOUR, CEK_KART.CAPIBLOCK_MODIFIEDMIN,"
sorgu = sorgu & " CEK_KART.CAPIBLOCK_MODIFIEDSEC, CEK_KART.COLLREPRATE, CEK_KART.COLLTRRATE,"
sorgu = sorgu & " CEK_KART.CANCELLED, CEK_KART.LINEEXCTYP, CEK_KART.TEXTINC, CEK_KART.SITEID, CEK_KART.RECSTATUS AS Expr1,"
sorgu = sorgu & " CEK_KART.ORGLOGICREF, CEK_KART.WFSTATUS, CEK_KART.BNBRANCHNO, CEK_KART.BNACCOUNTNO, CEK_KART.DEPTADDR1,"
sorgu = sorgu & " CEK_KART.DEPTADDR2, CEK_KART.DEPTCITY, CEK_KART.DEPTCITYCODE, CEK_KART.DEPTCOUNTRY, CEK_KART.DEPTCOUNTRYCODE,"
sorgu = sorgu & " CEK_KART.DEPTPOSTCODE, CEK_KART.DEPTTELNRS1, CEK_KART.DEPTTELNRS2, CEK_KART.DEPTFAXNR, CEK_KART.DEPTTOWN,"
sorgu = sorgu & " CEK_KART.DEPTTOWNCODE, CEK_KART.DEPTDISTRICT, CEK_KART.DEPTDISTRICTCODE, CEK_KART.OPSTAT, CEK_KART.PRINTCNT,"
sorgu = sorgu & " CEK_KART.NEWSERINO, CEK_KART.PROJECTREF, CEK_KART.FAXCODE, CEK_KART.TELCODES2, CEK_KART.TELCODES1,"
şeklinde devam ederek yazın. 10 satırdan fazla alt satıra geçilemiyor.

İyi çalışmalar

Modalı'ya teşekkürler , 10 satır sorunsalını da sizden öğrenmiş oldum.

Tarkan Vural' a da teşekür ediyorum.

Farklı bir platformda sorduğum aynı soruya kendisi ivedilikle şu yanıtı vermiş ve doğru sonuç üretiyor...

Kod:
DefStr S
Private Sub CommandButton1_Click()
    Dim Baglanti As Object, KayitSeti As Object
        Set Baglanti = CreateObject("adodb.connection")
            Set KayitSeti = CreateObject("adodb.recordset")

strFirma = Format(Sheets("SETUP").Range("B5"), "000")
    strServer = Sheets("SETUP").Range("B1").Value
        strDatabase = Sheets("SETUP").Range("B4").Value
            strKullanıcı = Sheets("SETUP").Range("B2").Value
                strParola = Sheets("SETUP").Range("B3").Value
   
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, '2009-02-17 00:00:00', 102)) AND (CEK_KART.DOC = 1) AND (ROLLER.RECSTATUS IN (1, 2))"

Baglanti.Open "Provider=SQLOLEDB; Data Source=" & strServer & "; Initial Catalog=" & strDatabase & "; User ID=" & strKullanıcı & "; Password=" & strParola & ";"
   
    KayitSeti.Open s, Baglanti, 1, 1
   
    Cells(8, 1).CopyFromRecordset KayitSeti
   
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


TEŞEKKÜRLER
 
arkadaşlar konu ile ilgili forumdaki yazıları uygulamaya çalıştım ama olmadı
sorunum query ile sql den excele aldığım sorguya değişken atamak yani WHERE KOŞULUNU excel hücresinden alması ;
query ile tek tabloda parametre ile istediğim oluyor fakat iç içe tablolarda olmuyor


BAĞLANTI ;

DRIVER=SQL Server;SERVER=HP\SQLEXPRESS;UID=XXX;PWD=XXX;APP=2007 Microsoft Office system;WSID=HP\SQLEXPRESS;DATABASE=DATA2015;Network=DBNMPNTW;Address=\\HP\pipe\MSSQL$SQLEXPRESS\sql\query

SORGU ;

SELECT*FROM CARI INNER JOIN
RUT ON CARI.KOD = RUT.CARIKOD INNER JOIN
CARIBORCALACAK ON CARI.KOD = CARIBORCALACAK.CARIKOD INNER JOIN
SATICI ON RUT.SATICITKOD = SATICI.KOD
WHERE (CARIBORCALACAK.YIL = 2014) """burada between ifadesi de olacak ; where tarih between 01012015 and 31122015 gibi "" buradaki tarih referansını excel hücresinden aldırmak istiyorum

AYRICA BAĞLANTI İÇİN HANGİ ADO NESNESİNİ SEÇMEM GEREKİYOR

yardımlarınız için şimdiden teşekkürler
 
Son düzenleme:
Module içine yazınız:
Kod:
Public con as object
Sub baglan()
set con = createobject("adodb.connection")
con.open "provider=sqloledb;data source=HP\SQLEXPRESS;initial catalog=data2015;user id=sa;password=xxxx"
end sub

sub raporla()
Dim tarih1 as date, tarih2 as date
tarih1= format(range("a1").text,"ggaayyyy")
tarih2=format(range("b1").text),"ggaayyyy")
call baglan
sorgu = "SELECT * FROM CARI INNER JOIN"
sorgu = sorgu & " RUT ON CARI.KOD = RUT.CARIKOD INNER JOIN"
sorgu = sorgu & " CARIBORCALACAK ON CARI.KOD = CARIBORCALACAK.CARIKOD INNER JOIN"
sorgu=sorgu & " SATICI ON RUT.SATICITKOD = SATICI.KOD"
sorgu = sorgu & " WHERE CARIBORCALACAK.TARIH BETWEEN " & tarih1 & " and " & tarih2
set rs = createobject("adodb.recordset")
rs.open s,con,1,1
if rs.recordcount>0 then
for i = 0 to rs.fields.count - 1
cells(3,i+1).value = rs.fields(i).name
next i
range("a4").copyfromrecordset rs
end if
set rs = nothing
con.close
set con = nothing
end sub

Tarih formatınız SQL sunucunun algılayacağı türde olmalı. Hata alırsanız tarihi doğru biçimlendirin.
Örnek :
Kod:
WHERE CONVERT(DATETIME, TARIH,104)  BETWEEN CONVERT(DATETIME,'" & RANGE("A1").TEXT & "',104) AND CONVERT(DATETIME,'" & RANGE("B1").TEXT & "',104)
 
Module içine yazınız:
Kod:
Public con as object
Sub baglan()
set con = createobject("adodb.connection")
con.open "provider=sqloledb;data source=HP\SQLEXPRESS;initial catalog=data2015;user id=sa;password=xxxx"
end sub

sub raporla()
Dim tarih1 as date, tarih2 as date
tarih1= format(range("a1").text,"ggaayyyy")
tarih2=format(range("b1").text),"ggaayyyy")
call baglan
sorgu = "SELECT * FROM CARI INNER JOIN"
sorgu = sorgu & " RUT ON CARI.KOD = RUT.CARIKOD INNER JOIN"
sorgu = sorgu & " CARIBORCALACAK ON CARI.KOD = CARIBORCALACAK.CARIKOD INNER JOIN"
sorgu=sorgu & " SATICI ON RUT.SATICITKOD = SATICI.KOD"
sorgu = sorgu & " WHERE CARIBORCALACAK.TARIH BETWEEN " & tarih1 & " and " & tarih2
set rs = createobject("adodb.recordset")
rs.open s,con,1,1
if rs.recordcount>0 then
for i = 0 to rs.fields.count - 1
cells(3,i+1).value = rs.fields(i).name
next i
range("a4").copyfromrecordset rs
end if
set rs = nothing
con.close
set con = nothing
end sub

Tarih formatınız SQL sunucunun algılayacağı türde olmalı. Hata alırsanız tarihi doğru biçimlendirin.
Örnek :
Kod:
WHERE CONVERT(DATETIME, TARIH,104)  BETWEEN CONVERT(DATETIME,'" & RANGE("A1").TEXT & "',104) AND CONVERT(DATETIME,'" & RANGE("B1").TEXT & "',104)

sağol hocam elinize sağlık hallettim
 
Geri
Üst