Forum
merhaba,
vb6 ile sql tabloma exceldeki verileri insert etmek istiyorum. excel ve sql tablosunun sütunları aynı ama exceldeki verinin kaç satır oldugu değişebiliyor. gözat mantıgıyla bir excel belgesini yol gösterip verileri almak istiyorum nasıl yapabilirim
teşekkürler
Merhabalar,
ihtiyacınız olan excelden okuyup, okuduğunuzu sql ile yazmak ise;
1-Excelden nasıl veri okunur?
2-Sql bağlantısı nasıl yapılır ve sorgu nasıl çalıştırılır?
Maddeleridir ihtiyacımız olan.
Satır sayısının değişmesinin hiç bir önemi yokki,
Mutlak var olması gereken bir alanda boşluk
görünceye dek satır okuma döngüsü devam eder.
Sql e yazdığınız data kendi oluşturmadığınız bir db'e ise -Erp paketleri gibi- dikkatli olmalısınız,
field yapıları, ilişkilendirmeler önemlidir. Uygulunacak sql kodunu , db yi kullanan orjinal uygulamayı
Sql Profiler ile izleyerek oluşturmanızda fayda var.
Yazılan data eş zamanlı olarak farklı bir yere insert ediliyor olabilir gibi vb bir şey söz konusu olabilir
Bazı paketlerde db yapısı karışık olur, mesela netsis, bu sebepten olsa gerek kendi apileri (netopenx gibi) ile okuma yazma tavsiye ederler.)
Yaygın bir paketin db si üzerine yazacaksa uygulamanız, farklı dillerde olmak kaydıyla (c#, delphi) gibi detaylı yardımcı olabilirim.
(bknz: Cem Yılmaz : Yapılmışı Var 🙂
1- Excelden Okuma Örneği
Dim excelac As Excel.Application '==>Kulanmak için project-referans tabından -
Dim dosya As Workbook 'microsoft excell 10.0 object library eklemelisin.
Dim sayfa As Worksheet
Dim okunan As Variant
Dim str, stn As Integer
Set excelac = New Excel.Application
Set dosya = excelac.Workbooks.Open("C:\Test.xls")
Set sayfa = dosya.Worksheets("Sayfa1")
okunan = sayfa.Range("A1").Value 'okuma örneğimiz
sayfa.Range("A2").Value = okunan 'yazma örneğimiz
//yada şöle devem ederiz
str = 3
stn = 4
var = sayfa.Cells(str, stn).Value
dosya.Close
excelac.Quit
Set sayfa = Nothing
Set dosya = Nothing
Set excelac = Nothing
2- Sorgu Çalıştırma Örneği
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;Password=123;User ID=sa;Initial Catalog=TestDB;Data Source=Server;"
Do While Hucrebosmu > 0 'tanımlamadık hucrebosmu yu excel le birleştirince atik.
cn.Execute "ekleme sorgun - okuduğun excelden çek birleştir ve sorgun oluşsun, tırnakları unutma:)"
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
orhan teşekkür ederim. verdiğin örnek oldukça işime yaradı. saol
Merhabalar,
ihtiyacınız olan excelden okuyup, okuduğunuzu sql ile yazmak ise;1-Excelden nasıl veri okunur?
2-Sql bağlantısı nasıl yapılır ve sorgu nasıl çalıştırılır?Maddeleridir ihtiyacımız olan.
Satır sayısının değişmesinin hiç bir önemi yokki,
Mutlak var olması gereken bir alanda boşluk
görünceye dek satır okuma döngüsü devam eder.Sql e yazdığınız data kendi oluşturmadığınız bir db'e ise -Erp paketleri gibi- dikkatli olmalısınız,
field yapıları, ilişkilendirmeler önemlidir. Uygulunacak sql kodunu , db yi kullanan orjinal uygulamayı
Sql Profiler ile izleyerek oluşturmanızda fayda var.
Yazılan data eş zamanlı olarak farklı bir yere insert ediliyor olabilir gibi vb bir şey söz konusu olabilir
Bazı paketlerde db yapısı karışık olur, mesela netsis, bu sebepten olsa gerek kendi apileri (netopenx gibi) ile okuma yazma tavsiye ederler.)
Yaygın bir paketin db si üzerine yazacaksa uygulamanız, farklı dillerde olmak kaydıyla (c#, delphi) gibi detaylı yardımcı olabilirim.
(bknz: Cem Yılmaz : Yapılmışı Var 🙂1- Excelden Okuma Örneği
Dim excelac As Excel.Application '==>Kulanmak için project-referans tabından -
Dim dosya As Workbook 'microsoft excell 10.0 object library eklemelisin.
Dim sayfa As Worksheet
Dim okunan As Variant
Dim str, stn As Integer
Set excelac = New Excel.Application
Set dosya = excelac.Workbooks.Open("C:\Test.xls")
Set sayfa = dosya.Worksheets("Sayfa1")
okunan = sayfa.Range("A1").Value 'okuma örneğimiz
sayfa.Range("A2").Value = okunan 'yazma örneğimiz
//yada şöle devem ederiz
str = 3
stn = 4
var = sayfa.Cells(str, stn).Value
dosya.Close
excelac.Quit
Set sayfa = Nothing
Set dosya = Nothing
Set excelac = Nothing2- Sorgu Çalıştırma Örneği
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;Password=123;User ID=sa;Initial Catalog=TestDB;Data Source=Server;"
Do While Hucrebosmu > 0 'tanımlamadık hucrebosmu yu excel le birleştirince atik.
cn.Execute "ekleme sorgun - okuduğun excelden çek birleştir ve sorgun oluşsun, tırnakları unutma:)"
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
Orhan bey bu cevabınız bir çok projem için işime yaradı. Çok Teşekkür ederim.
Bir sorum olacaktı yeni geliştirmek istediğim projem için.
SQL tablom KRITER
İçeriği KRL_REC, KRL_ID_KRL_KRH_ID, KRL_TAR, KRL_BLM, KRL_ADI, KRL_CVP,KRL_ACK, KRL_SYS_ZAM,KRL_USR
Excel formumda bulunan Kriter sorularımı günlük tarih seçerek MSSQL tabloma aktarmak istiyorum.
Formumda 1 adet tebede günün tarihi default gelecek şekilde ayarlanmış dtpicker nesnesi, her kriter için 16 adet label, 16 adet comboBox (EVET, HAYIR) şeklinde seçilecek şekilde, birde kayıt için commandbutton var.
Commandbutton a kaydet dediğim zaman sizin belirttiğiniz gibi INSERT INTO ile veriler KRITER tabloma yazılıyor.
Burda bir kontrol koymam gerekiyor Her günde bir adet soruların kaydedilmesi gerekiyor. Yoksa iki kez aynı sorular kaydedilirse sıkıntı çıkacak.
Bunun için yukardaki DTPicker tarih seçilidiği anda MSSql KRITER tablomda bu veriler varsa forma yansısın. Güncelleme için bir COMMANDButton koyayım bir şey değiştirilirse güncelle ile değiştirilsin aksi takdirde tekrar kaydetmesin. Bunu nasıl sağlarım.
Umarım anlatabilmişimdir.
Saygılarımla.