Merhabalar SQL den raporlama yaptığım dosyada SQL bağlantısını her makroda tanımlamak yerine bu bağlantıyı aşağıdaki kodlarla Fonsiyon olarak tanımladım,
Daha sonra raporlama amacı ile aşağıdaki macroyu yazdım
Macro başladığında fonksiyon işlevini yerine getirmekte ve bağlantıyı sağlamakta ancak bağlantıdan sonra makroya geri döndüğünde
Bölümüne geldiğinde
hatası vermekte bunu aşmanın bir yöntemi varmıdır,
her makroya tek tek vermekte mümkün şu anki haliyle her makro yeniden bağlantı kuruyor ancak dosyamda toplamda 1000 in üstünde rapor varyasyonu var ve bu durumda dosya boyuu çok fazla büyümekte, birazda olsa bunu azaltmak için bu tanım yapmam gerekiyor,
Saygılar,
Kod:
Function SQL_Connect
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim SqlText, tirnak As String
With conn
.Provider = "sqloledb"
.CommandTimeout = 1200
.ConnectionString = "Data Source= NETSIS;USER ID= rapor;PASSW=;AUTO TRANSLATE=FALSE"
.Open
.DefaultDatabase = Sayfa1.Cells(2, 2).Value
End With
End Function
Kod:
Sub Kotadan_Stok_Raporu()
'On Error Resume Next
SQL_Connect
SqlText = "SELECT STOK_KODU,STOK_ADI,KOD_5,SUM(KULL_STOK_BKY),SUM(KULL_STOK_TUTAR),OTV_ORAN "
SqlText = SqlText + " FROM MEH_KULLANILABILIR_STOK_MLYT"
SqlText = SqlText + " GROUP BY STOK_KODU,STOK_ADI,KOD_5,OTV_ORAN"
rs.Open SqlText, conn, adOpenStatic, adLockReadOnly
Sayfa2.Activate
Cells(2, 2).AutoFilter
Sayfa2.Range("B3:I100").ClearContents
i = 3
Do While Not rs.EOF
'Maliyet Listesine Yazdırma
Sayfa2.Cells(1, 1).Value = i
Sayfa2.Cells(i, 2).Value = rs(0)
Sayfa2.Cells(i, 3).Value = rs(1)
Sayfa2.Cells(i, 4).Value = rs(2)
Sayfa2.Cells(i, 5).Value = rs(3)
Sayfa2.Cells(i, 6).Value = rs(4)
Sayfa2.Cells(i, 7).Value = rs(4) / rs(3)
Sayfa2.Cells(i, 8).Value = rs(5)
rs.MoveNext
i = i + 1
Loop
conn.Close
Set rs = Nothing
Set conn = Nothing
End Sub
Kod:
rs.Open SqlText, conn, adOpenStatic, adLockReadOnly
Kod:
Run Time Error '424' :
Object Required
her makroya tek tek vermekte mümkün şu anki haliyle her makro yeniden bağlantı kuruyor ancak dosyamda toplamda 1000 in üstünde rapor varyasyonu var ve bu durumda dosya boyuu çok fazla büyümekte, birazda olsa bunu azaltmak için bu tanım yapmam gerekiyor,
Saygılar,
Son düzenleme: