Excel den sql deki bir tabloya veri aktarımı [Archive] - Excel Forum

PDA

Tüm Versiyonu Göster : Excel den sql deki bir tabloya veri aktarımı


eljolras
08-12-2006, 17:06
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

red_lion_72
10-12-2006, 23:06
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.



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.

alpi
10-12-2006, 23:43
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

eljolras
11-12-2006, 11:26
arkadaşlar çok teşekkür ederim yardımlarınız için, sizlerden öğrenecek çok şey var..

iyi çalışmalar..

Rafet
19-12-2006, 19:32
Harıka bir paylaşım.
Hayatı kolaylaştıran kodlar. Bunlar.

Excel en büyük bi nimet. :)

mfk2003
15-08-2007, 18:09
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 ?

red_lion_72
16-08-2007, 15:28
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.

mfk2003
22-08-2007, 14:44
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,

mfk2003
09-10-2007, 17:28
Arkadaşlar bu soruna bir çare bulan yok mu halen?

Rafet
09-11-2007, 08:25
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.


Özel Arama