Exceldeki verileri Sql tablosuna aktarma

Katılım
7 Ocak 2009
Mesajlar
13
Excel Vers. ve Dili
Excel 2007 English
Arkadaslar merhaba
Excel de bir tablomuz mevcut ve sheet1 de orn: adı soyadı ve no gibi alanlar mevcut ben bu sheet1 deki bu belirlemis oldugum alanları sql veritabanındaki bir table in icine yazdirmak istiyorum kullanmis oldugum sql server surumu sql 2005 burada data import Sql server import and export wizard dan yapmayı denedim fakat en son sql veritabanındaki tablonun içine yazarken son adımda bir cok error alıyorum Bos bir excel sayfasi bile aktarcak olsam hatalar alıyorum bu isin benimyaptigimdan kolay bir yıntemi var mıdır yardımlarınızı bekliyorum simdiden tesekkurler.
 

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

Aşağıdaki kodları kos sayfasına yapıştırınızve çalıştırınız.


tablename = " "
server_ismi = " "
veritabanı_ismi = " "
user = " "
password = ""

bu alanları kendinize göre doldurunuz

veri alanlarınız metin ise ' ile başalatıp bitiriniz.

Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strConn As String, stsql As String


Sub AKTAR()

tablename = " "
server_ismi = " "
veritabanı_ismi = " "
user = " "
password = ""


Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset

strConn = "PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE=" & server_ismi & ";INITIAL CATALOG=" & veritabanı_ismi & ";"
strConn = strConn & "UID=" & user & ";PWD=" & password

cnt.ConnectionString = strConn

stsql = "insert into " & tablename & " (ALAN1,ALAN2,ALAN3) values (V1,V2,V3)
cnt.Open
rst.Open stsql, cnt, 1, 3

If CBool(rst.State And adStateOpen) = True Then rst.Close
Set rst = Nothing
If CBool(cnt.State And adStateOpen) = True Then cnt.Close
Set cnt = Nothing
End Sub
 
Katılım
7 Ocak 2009
Mesajlar
13
Excel Vers. ve Dili
Excel 2007 English
Sql den exceldeki evrielri cekmek

zafer bey
Aşağıdaki kodları kod sayfasına yapıştırınızve çalıştırınız demissiniz
Kod sayfasından kastınız sql veritabanındaki databese in icinde query analyzer calıstırıp sizin vermis oldugunuz kodları burada mı execute etmem gerekiyor. ve excel dosyasındaki sheet i ise bu kodlarda nerede belirtmem gerekiyor.
 

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

Aktarılacak dosyayı buraya ekleyiniz.
Sql'deki Server ip adresi , veritabanı ismi ,tablo ismi,ve insert edilecek alanların isimlerini verebilirmisiniz.Ayrıca alanların sayısalmı ,metinmi olduğunu yazınız.

Kod yazmaya hiç başlamadıysanız biraz çalışmanız gerekecek

Kod yazma ile ilgili linkler
Kod Yazmayı Öğreniyorum
Excelde Makro (Kaydetmek, Düzenlemek (Macro))1
Makro Kaydet Yöntemi (Resimli Anlatım)
***VBA Menüleri***
***Döngüler ve Yapıları***


sql için aşağıdaki linkide inceleyiniz.

SQL Başvuru kitaplığı
SQL VERİTABANINA BİLGİ GİRİŞİ VE SORGULAMA
 
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Merhaba arkadaşlar ;

Benim de bu konu ile alakalı bir sorunum olduğu için yeni konu açmak istemedim.

MS SQL 2000 de bir veritabanında birbiri ile ilişkili 2 tablo var...

1.Tablo STOK KARTLARI Tablosu
2.Tablo Stok Kartlarının BARKOD kodlarının tutulduğu tablo

Ve oluşturulmuş bir excel dosyası var...Bu dosya da her iki tablo arasında ilişkinin kurulduğu anahtar alanda mevcut...

Yapmak istediğim EXCEL Tablosundaki , Stok Kartı Koduna bağlı olan BARKOD bilgisinin SQL deki BARKOD alanına bağlı olduğu stok satırına bilgi SET edilsin...

Burada önemli olan nokta şu ;

BARKOD tablosunun içi BOŞ....yani EXCEL tablosundan atılacak olan verilerin var olan bir satırda bir FİELD a SET edilmesinden bahsetmiyoruz...

Olmayan bir satıra SET edilmesinden bahsediyorum...

Dolayısı ile BARKOD Tablosunun bağlı olabileceği diğer Tabloların referanslarına da dikkat etmek gerekiyor...

Bu arada BARKOD tablosu 4 farklı tablodan referans alıyor...

bu tablolar

Brim Setleri Tablosu
Stok Özellikleri Tablosu
Variant Tablosu
Stok Tablosu


Şimdi içeriği boş olan bu BARKOD tablosundaki bir satır demek ; bir stok kartının barkod alanına bir bilgi girildiği anlamına geliyor...dolayısı ile BARKOD tablosundaki maksimum satır sayısı Stok tablosundaki satır sayısına eşit olabilir....

Benim burada öğrenmek istediğim mantalite dir ?

Boş bir tabloda sadece bir alanı set etmek istiyorum ama , o alanın set edilebilmesi için alanın bağlı olduğu satırda diğer alanlarında belirli kurallara göre set edilmesi gerekecek....

Sorular ;

KURALLARI nasıl yazacağız ?...SIRALAMA nasıl olacak...

Bu konuyu küçük bir örnek ile açıklayabilirmisiniz ?

Kolay gelsin , iyi çalışmalar...
 
Son düzenleme:

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,115
Excel Vers. ve Dili
Microsoft Office 2019 English
Nursal,
Bunun en basit yöntemi şudur ..Accessi açarsınız DSN yöntemi ile SQL serverinize baglanırsınız...Ve tabloları DBO ile accesse getirirsiniz..

Açarsınız tabloyu Exceldeki verileri kopyala yaparsınız...accese geri dönersiniz yapıştır dersiniz...bitti bukadar..

lsuersoy,

Exceldei tablo SQL deki tablo o tablo bu tablo derken benim kafam karıştı...

Anladıgım kadarını söyliyim onun üzerinden yürümekte yarar var

STOK_KARTI ve BARKOD diye 2 tablomuz var... Bu tablolara bilgi basıcaz..2 tabloda birbiri ile ilişkili tablolar... STOK_KARTI tablosu dolu BARKOD tablosunun içi ise boş. Biz Excelde Var olan "Barkod" ile ilgili bilgileri BARKOD tablosuna aktarıcaz..Ama aktarmadan öncede STOK_KARTI tablosundaki BARKOD alanı ile eşleşen varmı yokmu bunun kontrolunu yaparak içeriye aktarım yapacagız..Dogrumudur?

İster vBA da yapın ister excelde... Cok daha kısa sürmesini isterseniz...

STOK KARTLARINI bahsettiginiz excel dosyasındaki ayrı bir SHEETE alın

sonra barkod sheetine gidip VLOOKUP (DÜŞEYARA) yöntemi ile elimizde exceldeki barkodların içerde kayıtlı olanlarını stok kartları arasından arattırın N/A verenleri silin..Yukarıda nursalh arkadaşıma bahsettigim yöntemin aynısını izleyip BARKOD tablosuna yapıştırın kalanları bitti bukadar..

Yada VBA ile yaparsınız INNER JOINle tabloları birbirine baglayıp STOK_KARTI ile BARKOD tablosunda birbirine eşleşenleri bir gride cekip grid üzerinde For ile dönerek Rst ile içeriye Addnewlersiniz... VSFLEXGRID ile ilgili makale yazmıstım onunlada yapabilirsinzi bu islemi...

Kolay gelsin
 
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
sorunu daha iyi anlatmak

Öncelikle ilginize teşekkürederim.

Sorunun daha iyi anlaşılması için resim ekleyeceğim...

VLOOKUP ve COPY+PASTE gibi manuel işlemler sorunun çözümünde kullanılabilecek çözümler değildir.

Kısaca BOŞ BİR TABLO var bu tabloda başka tablolardaki bilgilere bakılarak set aynı değerleri taşıyan fieldler olması gerekiyor...

Diyelimki bu boş tabloda 10 adet Field olsun..Bizim elimizde ise sadece 2 field daki bilgiler mevcut ( Stok Kart referansı ve Barkod kodu ) , diğer 8 alanında diğer tablolardaki alanlara göre otomatik olrak SET edilmesi gerekiyor...

linkdeki resimden sanırım daha iyi anlayacağız...

http://www.lsuersoy.gen.tr/content/Some Pics/EXCELVBA.NET/NULL_TABLOYA_ILISKILERE_GORE_SATIR_INSERT_ETMEK.JPG

kolay gelsin
 
Son düzenleme:

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,115
Excel Vers. ve Dili
Microsoft Office 2019 English
resmi koydugunuzda daha iyi anlaşılacaktır
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,115
Excel Vers. ve Dili
Microsoft Office 2019 English
pardon link sonradan geldi ekranıma...
 
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Northwind ?

JPG 'nin boyutunu küçülttüğümde görüntü netliği bozulduğundan URL eklemek zorunda kaldım...

Yeri gelmişken sorayım SQL deki standart NORTHWIND veritabanının ŞEMASINI Bulabileceğimiz bir link biliyormusunuz ?

Northwind in tabloları arasındaki ilişkiyi kafamda kurabilsem SQL bilgimi hızlı bir şekilde geliştirebileceğimi umuyorum....ama başlangıç da takıldığım için...SQL de basit SELECT ve UPDATE lerin ötesine geçemiyorum....

Bu arada yeni bir dosya ekledim burada yapmak istediğimi şematik olrak göstermeye çalıştım...

Kolay gelsin , iyi çalışmalar...
 

Ekli dosyalar

Son düzenleme:
Üst