Forum

vb6 ile excelden sq...
 
Bildirimler
Hepsini Temizle

vb6 ile excelden sql e veri aktarımı

4 Yazılar
3 Üyeler
0 Reactions
2,543 Görüntüleme
(@SinanYesilyurt)
Gönderiler: 42
Trusted Member
Konu başlatıcı
 

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

 
Gönderildi : 04/03/2009 17:41

(@orhanakdogan)
Gönderiler: 311
Reputable Member
 

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
 


 

 
Gönderildi : 04/03/2009 23:04

(@SinanYesilyurt)
Gönderiler: 42
Trusted Member
Konu başlatıcı
 

orhan teşekkür ederim. verdiğin örnek oldukça işime yaradı. saol

 
Gönderildi : 05/03/2009 16:45

(@ozcanozarslan)
Gönderiler: 63
Estimable Member
 

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 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.

 
Gönderildi : 16/07/2017 04:38

Paylaş: