Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » visual basic makaleleri » Export(.xls)/İmport(.xls) İşlemleri, Excelde Kullanıcı Yetki Alanı Kısıtlama-1
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

SAAT() Fonksiyonu

Yazar: Webmaster

Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 11096
Yayın Tar:03.03.2009
Yazar : rlocus
Hit :3535

Bu Yazarın Yazıları Sadece bu yazarın makale göster
Bu Yazıyı Tavsiye Et

ÖZET
Bu makalede; bir veri tablosundan excel tablosuna verilerin, formatlı excel tablosunun üzerine yazmadan aktarılması, excel tablosunun bazı alanlarının değişikliklere karşı korunması(kilitlenmesi) ve yazılan programın kendi Export ettiği tablolar dışındaki tabloları İmport etmemesi için yapılması gerekenler anlatılmıştır.

Kullanıcılar için veriler üzerinde çalışmak (programcı her nekadar kullanımı kolay bir arayüz tasarlamış olsada) hiçbir zaman bir excel tablosunda çalışmak kadar cazip olamaz. Kullanıcıları bu kolaylıktan mahrum etmemek için veri tabanındaki verileri bir excel çalışma sayfasına dökmek ve üzerinde düzenleme yapılmış verileri tekrar veri tabanına almak gerekir(import-export). Ancak bu işlemin bazı kritik, hata götürmez noktaları vardır. Birincisi kullanıcıya her veri alanında değişiklik yapma yetkisi verilmemelidir (örn ; Stok Kodu, Cari Kod , stok grup adı vb.) Bunun için excel sayfasının kiltlenmesi yöntemi kullanılmalıdır. Öncelikle program klasörü içerisine veri tabanınıza göre biçimlendirilmiş bir excel sayfası oluşturup kaydilmelidir(Projemizde “stok.xls”). Aynı zamanda değiştirilmesi istenmeyen satırlar seçilerek (‘Sağ Click Koruma’) “Kilitli” olarak işaretlenmelidir.
İkinci kritik nokta ise, import edilecek xls verilerin program formatına uymayacak biçimde olması durumudur. Kullanıcı kendi mantığınca kurmuş olduğu excel verilerini veri tabanına atmak isteyebilir, bu muhtemelen veri tabındaki bütün verilerin kaybedilmesiyle veya (şanslıysa) başarısız bir import ile sonuçlanacaktır(Bu Durumda, Kullanıcıya Göre Kötü Bir Programcısınız). Ama programınız sadece kendi export ettiği veri tablolarını import eder, farklı formda veriler import edilmek istediğinde “İmport etmek istediğiniz tablo uygun formatta değil…vs.” gibi bir mesaj ile kullanıcıyı bilgilendirir ve işlemi reddederse sorun aşılmış olacaktır. Peki bu nasıl olabilir?. Programınız her expotta tablonun bir köşesine bir şifre yazar(şifreyazılı kolonu gizleyiniz), aynı şifreyi kendiside biyerlere kaytederse(projede veri tablosuna “.mdb”) ve import işleminde bu şifreleri karşılaştırırsa excel tablosunda kendi imzasının olup olmadığını anlayacak ve onagöre bir yol izleyecektir. Kritik iki noktayı bertaraf ettikten sonra artık program bu doğrultuda yazılabilir.
İzlenecek adımlar aşağıdaki gibidir;

1-Veri Dolu Bir Veri Tablosu edinin(.mdb)
2-Veri tablosuna göre bir excel tablosunu biçimlendirerek program klasörüne kaydediniz.
3-Bir adet Connection ve iki adet Recordset tanımlayarak, (rscon1.Recordset)ilgili veri tablosu ve şifreyi saklayacak veri tablosuna(rscon2.Recordset) bağlantı kurunuz.
4-Bir Excel Uygulaması tanımlayınız. Bilmeyenler için;
General Declarations Bölümüne
Dim ex As Object
Dim WithEvents exc As Excel.Application
Form_Load()
Set exc = CreateObject("Excel.Application")
5-Forma 2 Adet Label Ekleyiniz ;
label1(0).caption=”Export .xls”
label1(1).caption=”İmport .xls”
6-Label1_Click Olayına Aşağıdaki Kodları Yazınız(Export Olayı);
If Index = 0 Then ‘……………………………..Tıklanan Label1(0) ise
Dim dsno As Long
Dim lm As String
Dim am As String ‘…………………………Bu değişkenleri şifreleme için tanımlıyoruz
exc.Workbooks.Open (App.path & "\stok.xls") ‘………Formatlı excel tablosu açılıyor
lm = CStr(Time)
am = Left(lm, 2) & Right(lm, 2) & Left(Mid(lm, 4), 2)
dsno = CLng(Date) + CLng(am) ‘……….Bu üçsatır sonunda özgün bir şifre oluşturuluyor
exc.ActiveWorkbook.SaveCopyAs (App.path & "\" & dsno & ".xls") ‘………..Formatlı excel tablomuzun bozulmasını üzerine veri yazılmasını istenmez bunun için tablo “dsno” değişkeni ile adlandırıp farklı kaydediliyor.
exc.Workbooks.Close
exc.Workbooks.Open (App.path & "\" & dsno & ".xls") ‘…………Farklı kaydetmiş olduğumuz excel tablosunu açıyor. Formatlı tablomuz herzaman boş olarak kalmış olacaktır.
rscon2.MoveFirst ‘…………Şifremizi kaydedecek olan recordset, şifremizi tutan alan tablomuzun 1. satırında 4. sütununda (kafa karıştırmasın benim tutmam gerekn birden fazla ayar olduğundan böyle, şifreler .txt yede kaydedilebilir)
DSNOxls = rscon2.Fields(4)
DSNOxls = DSNOxls & dsno ‘….Eski şifreleri okuyup yeni şifreyide bu stringe ekledik
rscon2.MoveFirst
rscon2.Fields(4) = DSNOxls
rscon2.update ‘……….Şifre stringini yeni haliyle tekrar alanına yazılıyor.
exc.ActiveWorkbook.Unprotect ("abcdefg") ‘……..Kilitli Excel alanlarına veri gönderilemez bunun için kilidi açılıyor ”abcdefg” daha önce excel sayfasına tanımlamış koruma şifresidir.
exc.Cells(1, 1) = "Stk Kodu"
exc.Cells(1, 2) = "Grup Adi"
exc.Cells(1, 3) = "Alt Grup"
exc.Cells(1, 4) = "Boyut"
exc.Cells(1, 5) = "Birim Fiyat"
exc.Cells(1, 6) = "iskonnto 1"
exc.Cells(1, 7) = "iskonto 2"
exc.Cells(1, 8) = "Kdv"
exc.Cells(1, 9) = "Para Birimi"
exc.Cells(1, 10) = "Ölçü"
exc.Cells(1, 11) = dsno ‘ 1-10 kolonların 1. satırlarına kolon başlıklarını yazdırılıyor. 11. kolonada programın imzası atılıyor ki export işleminde programın tabloyu tanıması için gereklidir.
rscon1.MoveFirst
j = 1
Do
j = j + 1
exc.Cells(j, 1) = rscon1.Fields(0)
exc.Cells(j, 2) = rscon1.Fields(1)
exc.Cells(j, 3) = rscon1.Fields(2)
exc.Cells(j, 4) = rscon1.Fields(3)
exc.Cells(j, 5) = rscon1.Fields(4)
exc.Cells(j, 6) = rscon1.Fields(5)
exc.Cells(j, 7) = rscon1.Fields(6)
exc.Cells(j, 8) = rscon1.Fields(7)
exc.Cells(j, 9) = rscon1.Fields(9)
exc.Cells(j, 10) = rscon1.Fields(10)
rscon1.MoveNext
Loop While Not rscon1.EOF ‘ Do…Loop döngüsü ile veri tabanındaki tüm verileri excel tablosuna aktarıyor.
exc.ActiveSheet.Protect (“abcdefg") ‘ Kullanıcı yetkili olmadığı alanları değiştirememeli bunun için sayfa tekrar kilitlenmelidir ve kilitleniyor.
exc.Workbooks.Application.Visible = True ‘ Bu işlemler esnasında excel tablosu görünmezdir.Bu satırdan sonra artık kullanıcı excel tablosunu görebilir ve yetkili olduğu alanlarda değişiklik yapabilir.
End If
Projenin Export bölümü bukadar. İşinize yaraması umuduyla...
Makalenin 1. Bölümünde Export işlemi anlatılmıştır. İmport işlemi 2. Bölümde anlatılacaktır.




Bu sayfa için henüz yorum eklenmemiş.

© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin