SQL Server üzerinde çalışan veritabanında Update yapmak!

Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Merhaba,

ADO, DAO v.s. gibi yöntemlerle .mdb, .txt veya .xls dosyalarına erişip veri sorgulayıp veri girişi yapabiliyorum (Haluk üstada bir kez daha teşekkür etmem gerek).

Veri sorgulama işlemini, SQL Server üzerinde çalışan veritabanından aşağıdaki (Makro Kaydı ile ulaşılan) kodlar ile yapabiliyorum:

Kod:
Sub Sorgu()
Dim SQL As String
'
SQL = "SELECT tblBanka.BankaKodu, tblBanka.Aciklama"
SQL = SQL & vbCrLf
SQL = SQL & "FROM 2008VT.dbo.tblBanka tblBanka"
'
    With ActiveSheet.QueryTables.Add(Connection:= _
        "ODBC;DSN=2008VT;Description=2008VT;UID=Rapor;PWD=123;APP=Microsoft Office 2003;WSID=D112;DATABASE=2008VT;LANGUAGE=Türkçe" _
        , Destination:=Range("A1"))
        .CommandText = SQL
        .Name = "2008VT kaynağından sorgula"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
Ancak aynı veritabanında bulunan bilgileri güncelleyebilmek için UPDATE
komutunu SQL Server üzerinde çalışan bu veritabanında nasıl kullanacağımı bilemiyorum.

Normalde SQL Server Enterprise Manager veya Query Analyser gibi veritabanı erişimi ve SQL kodu yürütme işlemi yapabildiğim uygulamalarda aşağıdaki SQL cümlesi ile UPDATE yapabiliyorum, ancak bu işlemi Excel üzerinde ne tür bir kod ile yapabileceğimi bilemiyorum.

Kod:
Update tblBanka 
Set Aciklama = 'Z Bankasi' 
Where Aciklama = 'X Bankasi'
Saygılarımla

Not: Örneğimde de görülebileceği üzere 2008VT adlı Sql Server'da çalışan veritabanının ODBC ayarları bilgisayarda yapılmıştır.


Düzeltme: İmla.
 
Son düzenleme:
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Necdet Bey,

Verdiğiniz linki daha önce görmüştüm, ancak ifadenizin başında "Oracle" kelimesini görünce farklı konu zannedip geçmiştim.

Ancak şimdi siz söyleyince tekrar o konuyu inceledim ve cevabımı oradan buldum. Benim yanıldığım konu erişim için Sql Server'a has birşey aramak oldu sanırım, halbuki ADO ile bu tür veritabanlarının tümüne bağlanabiliyoruz :)

İleride aynı sorunu yaşayabilecek olanlara yardımcı olması için nihai kodu aşağıda veriyorum.

Teşekkür Ederim.

Kod:
Dim cnn As New ADODB.Connection
Dim Server, UserName, Password, Database As String
'
Server = "Server1"
UserName = "Rapor"
Password = "123"
Database = "2008VT"
'
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Driver={SQL Server};Server=" & Server & ";Database=" & Database & ";Uid=" & UserName & ";Pwd=" & Password

cnn.Open
cnn.Execute "update [tblBanka] set [Aciklama] = 'Z Bankasi' where [Aciklama] = 'X Bankasi' "
cnn.Close
Set cnn = Nothing

Not: Linkte yer alan açıklamayı buraya da yazalım; Öncelikle ADO Referansı eklenmeli...
 
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
SQL Server için Connection String ararken bulduğum bir URL'yi sizlerle paylaşmak isterim, www.connectionstrings.com

Bu siteden SQL Server, Oracle, MySql, AS400, Paradox, Interbase gibi çok sayıda veritabanı sunucusunun connection string'ini bulabilirsiniz.
 
Üst