Excel den sql deki bir tabloya veri aktarımı

Katılım
8 Aralık 2006
Mesajlar
2
Excel Vers. ve Dili
excell 2003 türkçe
merhaba,

forum üzerinde oldukça araştırma yaptım fakat aradığım bilgiye ulaşamadım. yapmak istediğim şey excel sayfasında bulunan bilgileri sql serverda bulun bir veri tabanı içindeki tabloya aktarmak. bu işlem sql cümleleriyle yapıldığını duymuştum fakat ne kadar uğraştıysam bir türlü beceremedim..

konu hakkında bilgilerini rica ediyorum, teşekkürler..

ahmet
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
Selam,

Çalışma sayfanıza bir command buton ekleyin. Unutmadan çalışmanızın Makro sayfasına Tools, References menüsünde "microsoft activex data objects 2,5 library" referansını eklemeyi unutmayın.


Kod:
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strConn As String, stSQL As String
Private Sub kayit()
'1.sayfada database'e yazılacak hücreleri değişkenlere atıyoruz.
verim = Sheets(1).Cells(1, 1)
verims = Sheets(1).Cells(1, 2)
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset
strConn = "PROVIDER=SQLOLEDB;"
'serverismi yazan yere server'ınızın ismini, databse ismi yazan yere database'nizin ismini yazın
strConn = strConn & "DATA SOURCE=serverismi;INITIAL CATALOG=databaseismi;"
strConn = strConn & " INTEGRATED SECURITY=sspi;"
cnt.ConnectionString = strConn

'insert cümlemiz. Table1 isimli tablomuza 1.sayfadaki verileri yazıyoruz
stSQL = "insert into table1 (id, kolon1) values ('" + verim + "', '" + verims + "')"


'connection'u aç
cnt.Open
'kayıtları işle
rst.Open stSQL, cnt, 1, 3


'connection ile recordset'leri boşalt
Set rst = Nothing
Set cnt = Nothing

End Sub

Private Sub CommandButton1_Click()
kayit
End Sub
Kolay gelsin.
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Linkteki örnek çalışma açıklamalı olarak yapılmıştır. Bu uygulamada SQL tanımlamalarını bilmedende access i veritabanı olarak kullanma(DAO) yöntemi açıklanmıştır.

http://excel.web.tr/showthread.php?t=23454
 
Katılım
8 Aralık 2006
Mesajlar
2
Excel Vers. ve Dili
excell 2003 türkçe
arkadaşlar çok teşekkür ederim yardımlarınız için, sizlerden öğrenecek çok şey var..

iyi çalışmalar..
 

Rafet

Altın Üye
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
Harıka bir paylaşım.
Hayatı kolaylaştıran kodlar. Bunlar.

Excel en büyük bi nimet. :)
 
Katılım
16 Şubat 2007
Mesajlar
17
Excel Vers. ve Dili
2003 vb
Yukarıda bulunan kodlarda SQL e string türü değerler atılıyor.Fakat sql de bulunan tabloda parasal ve sayısal değerleri gönderirken hata veriyor.Excel tablomda bulunan metinleri yazdırmak ta sorun yok fakat aynı sql tablosundan bulunan hem sayısal hem de metin kolonlarından oluşan bilgileri nasıl bir kodla sql e atabilirim ?
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
Selam,

Herhangi bir sorun olmaması lazım. Tablonuzda verilerin işleneceği kolonların tanımlaması integer olarak mı yapılmış? Tablonuzu "design" kısmından bir kontrol edebilirmisiniz? Ayrıca tanımladığınız değişkenleri(verim ve verims) integer olarak tanımlayıp denermisiniz?

yani;
dim verim as integer
verim = Sheets(1).Cells(1, 1)
dim verims as integer
verims = Sheets(1).Cells(1, 2)
olarak deneyebilirmisiniz?

Kolay gelsin.
 
Katılım
16 Şubat 2007
Mesajlar
17
Excel Vers. ve Dili
2003 vb
Selam,

Herhangi bir sorun olmaması lazım. Tablonuzda verilerin işleneceği kolonların tanımlaması integer olarak mı yapılmış? Tablonuzu "design" kısmından bir kontrol edebilirmisiniz? Ayrıca tanımladığınız değişkenleri(verim ve verims) integer olarak tanımlayıp denermisiniz?

yani;
dim verim as integer
verim = Sheets(1).Cells(1, 1)
dim verims as integer
verims = Sheets(1).Cells(1, 2)
olarak deneyebilirmisiniz?

Kolay gelsin.


Öncelikle ilginiz için teşekkür ederim,
Kolon özelliklerinde Varchar olarak tanımlanmış.Değişkenleri integer olara atamama rağmen " verim = Sheets(1).Cells(1, 1) " satırı için Runtime error '13 type mismatch hatası veriyor.
Sql de bulunan bir tabloya aynı satırda hem rakamsal hemde metinsel değerler göndermem gerekiyor.1.SQL kolonunda sayısal değer gönderiyorken 2.kolona metinsel bir değer gönderiyorum.Şayet böyle bir örnek kod yazarsanız üzerinde çalışabilirim.
Teşekkür ederim,
 
Katılım
16 Şubat 2007
Mesajlar
17
Excel Vers. ve Dili
2003 vb
Arkadaşlar bu soruna bir çare bulan yok mu halen?
 

Rafet

Altın Üye
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
Bende aynı sorunu yaşamış ve Sayısal değerleri SQL UPDATE edememiştim. Sonra atamamın nedeninin sayısal değerlerdeki ,(virgül) olduğunu anladım.
Bu virgülü .(noktaya cevirip) sayısal değerin önüne '(tek tırnak) ekleyerek SQL e update ettim.


Kullandiğim kodlar (makro kaydet ile CTRL F ile değiştirme işlemini kaydederek buldum)

Cells(Satir, fiyat) = "'" & Cells(Satir, fiyat) ' önce tek tirnak ekleyerek metne ceviriyorum sonra , leri, noktaya ceviriyorum.
Cells(Satir, fiyat).Replace What:=",", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False



Excel.web.tr de bir iki kez kezde bu soruyu sırdum , metindeki virgülleri noktaya cevirmenin kolay bir kodu varmı diye ama cevap bula mamıştım.
http://www.excel.web.tr/showthread.php?p=209877#post209877


Umarım işinize yarar.
 
Üst