Makro ile SQL

Katılım
13 Haziran 2005
Mesajlar
10
benim yapmak istediğim userform1 üstündeki başlat düğmesine bastıgımda gidip ms sql veritabanina baglanıp orada benim istediğim sorguları çalıştırması bu konuda bana yardımcı olursanız sevinirim :)
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

hangi database ve tablodan veri alacaksınız
onun için excel'de bir query yapıp. (veri/dış veri al/ Yeni veritabanı sorgusu oluştur)verileri excel'e alabilirsiniz.
Sonra da onu butona bağlarsınız
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
selam,
Kod:
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strConn As String, sorgu as string

Private Sub CommandButton4_Click()
Call sil

Set cnt = New ADODB.Connection
strConn = "PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE='buraya SQL SERVER YOLUNUZU YAZIN(IP si daha iyi olur) tırnakları kaldırın';INITIAL CATALOG='database adını buraya yazın';"
strConn = strConn & " INTEGRATED SECURITY=sspi;"
cnt.Open strConn
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = cnt
sorgu = "select * from tablonuzun_ismini_buraya yazın"
.Open sorgu
Sayfa2.Range("A2").CopyFromRecordset rst
.Close
End With
cnt.Close
Set rst = Nothing
Set cnt = Nothing
End Sub

'burayı bir module kaydedin
Sub sil()
Dim say As Integer
say = Application.CountA(Sheets("sayfa2").Columns("A"))
For i = 1 To say
Sheets("sayfa2").Rows("1:" & i).Delete
Next i
End Sub
Bu kodlar windows authentication modunda çalışan SQL SERVER için geçerli eğer SQL SERVER mix modda ise bağlantı cümlesini değiştirmeniz gerekecek. Eğer mix mod olup olmasığını söylerseniz ona da bakayım.

Kodun neler yaptığına gelince SQL SERVER'a bağlanıp istediğiniz tablodan yada views'tan sorgu alır ve sorguyu recordset'e atayarak sayfa 2 ye kopyalar. Eğer SQL bilginiz iyi değilse tablo isimlerini ve ne yapmak istediğinizi yazarsanız yardımcı olmaya çalışırım.

Sayın Zafer beyin dediği gibi dış veri al'ı da kullanabilirsiniz. daha kolaydır.
Kolay gelsin.
 
Üst