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 » DLL Oluşturma ve Kullanma: Excel Dosyası ile İletişim
Ü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

Eleman KAyıt Programı

Yazar: zebani_1988
Bu Program Tam bir İŞyerleri için Uygun programdır işinize yarayacağını düşünüyorum Herkese sevgiler....


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 № : 9292
Yayın Tar:26.08.2007
Yazar : epikuros
Hit :5376

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

Excel dosyası hangi tarih ve saatlerde kaydedilmiş?

Exceldeki işlemlerden, Excel dosyasının VBA Kod sayfasında yapacağımız düzenlemelerle haberdar olabiliriz. Bunun için kendi hazırlayacağımız bir DLL?den yararlanmak mümkün. Örnek olarak vereceğim DLL belirttiğimiz sabit bir yolda bulunan veritabanımıza, Excel dosyamız her kaydedildiğinde Kayıt Tarihi ve saatini ekleyecek.

Öncelikle bir Veritabanımızın olması şart. Veritabanımızın ismi vtExcel. İçerisinde tek tablo var. Alanları KayıtNo(OtomatikSayı), KayıtTarihi(Metin), KayıtSaati(Metin) olan tablomuzun ismi tblKayıt. Veritabanımız ?C:\? dizininde.

Yeni bir Proje Başlatıyoruz. Proje türü olarak ActiveX DLL ?yi seçiyoruz. Projemize bir Class1.cls modülü eklenmiş durumda. Şimdi projemizin adını ?ExcelKaydet?, Modülümüzün adını da ?Kayıt? olarak değiştiriyoruz.

Modulümüzün içerisine istediğimiz kayıt işlemini gerçekleştirecek aşağıdaki fonksiyonu yazacağız:

Function Kaydet()
?Değişkenlerimizi tanımlıyoruz
Dim Bağlantı As Connection
Dim KayıtSeti As Recordset
Dim sqlMetni As String
?Öncelikle veritabanımız ile bağlantılarımızı kuruyoruz
Set Bağlantı = New ADODB.Connection
Bağlantı.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & "C:\vtExcel.mdb"
sqlMetni = "SELECT * From tblKayıt"
?KayıtSetimizi oluşturup açıyoruz
Set KayıtSeti = New ADODB.Recordset
KayıtSeti.Open sqlMetni, Bağlantı, adOpenKeyset, adLockOptimistic
?Excelde ?Kaydet? komutu verildiği andaki Tarih ve Saati veritabanımıza ekliyoruz
KayıtSeti.AddNew
KayıtSeti.Fields(1) = Date
KayıtSeti.Fields(2) = Time
KayıtSeti.Update
?KayıtSetimizi, Veritabanımızı kapatıp, değişkenleri serbest bırakıyoruz
KayıtSeti.Close
Set KayıtSeti = Nothing
Bağlantı.Close
Set Bağlantı = Nothing
sqlMetni = ""
End Function

İşimizi görecek dll fonksiyonumuz hazır. Şimdi Dll oluşturuyoruz. Bu işlem de son derece basit. Tıpkı exe derler gibi Make ExcelKayıt.dll komutunu veriyoruz ve dll dosyamızı ?C:\? altına ExcelKayıt.Dll? olarak derliyoruz.

Bu aşamadan sonrası da Excel?de yapacağımız kodlamalara kalıyor. Takibini yapacağımız Excel dosyasını açtıktan sonra

Araçlar > Makro > Visual Basic düzenleyicisi komutları ile VBE penceresine geçiyoruz. Burada ilk yapacağımız işlem Excel Referanslarına bizim projeyi de eklemek. Bu işlemi tıpkı VisualBasic?deki Referans ekleme işlemi gibi yapıyoruz.

Tools menüsünden References seçeneği ile açılan pencere tanıdık gelecektir. Buradan Browse butonu ile ?C:\? altına kaydettiğimiz ?ExcelKayıt.dll? dosyasını seçip onaylıyoruz. DLL dosyamız Excele tanıtılmış oldu.

Bu işlemden sonra Exceli bize ihbar edecek olan Sub?umuzu yazabiliriz.
Sub Bildir()
Dim sınıf As Object
Set sınıf = CreateObject("ExcelKayıt.Kayıt")
sınıf.Kaydet
End Sub

Görüldüğü gibi bu Sub DLL içerisine eklediğmiz ?Kaydet? fonksiyonunu tetikliyor ve bizim fonksiyonumuz da tetiklendikten sonra üzerine düşeni yapacak.

Peki bu sub ne zaman devreye girecek?
Bizim amacımız, kullanıcı Excel dosyasını kaydettiği her an, bu kayıt işleminin tarihini ve saatini veritabanımıza eklemek. Dolayısı ile WorkBook?un save olaylarından biri gerçekleştiğinde olmalı bu iş. WorkBook?un BeforeSave olayı bu işimizi görür, bu olaya yazabiliriz Sub?umuzu çalıştıracak kodu. Sol üstteki açılan kutudan WorkBook?u, Sağ üstteki açılan kutudan da BeforerSave?i seçiyoruz. Bu olaya yazacağımız kod tek kelime: Subumuzun adı ?Bildir.?

Excel VBE kodlarımız şöyle olmalı:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Bildir
End Sub

Sub Bildir()
Dim sınıf As Object
Set sınıf = CreateObject("ExcelKayıt.Kayıt")
sınıf.Kaydet
End Sub

Kaydedip, Excel kitabımıza geçelim. (Bu kayıt bile veritabanımıza işlenmiş olmalı). Excel kitabını kaydetmeyi deneyin. Herhangi bir bildirim olmadan o anın tarihi ve saati veritabanına kaydedildi bile. Kontrol edebilirsiniz.

Aynı mantıkla, açılma yada kapanma anları da kayıt altına alınabilir. Sub'u çağırdığımız Bildir komutunu nereye yazdığınıza bağlı. WorkBook_Open'a yazmışsanız Excel dosyasının her açılış anı veritabanına kaydedilir.





Yorumlar, eklemeler ve düşünceler
        slm arkadasım.anlatımı guzel ve gelıstırmeye acık bır calısma olmus.sagolasın.iyi calısmalar.

   acehan51, 06.09.2007 19:54
© 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