• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Exceldeki verileri Sql tablosuna aktarma

  • Konbuyu başlatan Konbuyu başlatan nursalhb
  • Başlangıç tarihi Başlangıç tarihi
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.
 
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
 
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.
 
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
 
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:
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
 
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/...ABLOYA_ILISKILERE_GORE_SATIR_INSERT_ETMEK.JPG

kolay gelsin
 
Son düzenleme:
resmi koydugunuzda daha iyi anlaşılacaktır
 
pardon link sonradan geldi ekranıma...
 
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:
Geri
Üst