Kendi Yapmış Oldugumuz Fonksiyonları Diğer Çalışmalarımızda kullanma

ismailerkan15

Altın Üye
Katılım
23 Nisan 2005
Mesajlar
43
Excel Vers. ve Dili
2003 tr
Altın Üyelik Bitiş Tarihi
5-11-2026
Slm
Arkadaşlar Access'de Kendi Yapmış Olduğumuz Fonksiyonları Diğer projelerimizde kullanabilmek için ocx dosyası halıne getirmenin bir yolu varmı.

Mesela Exel İcin Yapmış Oldugumuz fonksiyonları xla uzantılı olarak kaydedip
Exelin eklentilerden ekleyip kullanabiliyoruz . Access içinde böyle bir imkan varmı
Yardımlarınız için şimdiden teşekkür ederim.
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın ismailerkan15,

Bu işi yapmanın çok yolu var. Ancak sanırım hazırladığınız bir dizi fonksiyonu başka uygulamalarda da nasıl kullanabileceğinizi soruyorsunuz. En kestirme ve kesin çözüm kendi başvuru kitaplığımızı oluşturmak.

KENDİ BAŞVURU KÜTÜPHANENİ KENDİN YAP!

Yeni bir Access dosyası açıp içine birer adet tablo, form ve rapor yerleştirelim. Örneğimizde üçü de “Kisiler“ adında tablo, form ve rapor var. Sonra modül sayfasında yeni bir modül oluşturup aynen şunları yazıyorum:


Option Compare Database
Option Explicit

Public Function Topla(sayi1 As Long, sayi2 As Long) As Long
Topla = sayi1 + sayi2
End Function

Public Sub KisilerFormunuAc()
DoCmd.OpenForm "Kisiler"
End Sub

Public Sub KisilerRaporunuAc()
DoCmd.OpenReport "Kisiler"
End Sub



Bir başvuru dosyasının içindeki bir formu, raporu veya diğer şeyleri açabilmek için aynı dosya içinde bu işleri yapan kodlarımızın olması gerekiyor. Örnekte rapor ve formu açabilmek için iki ayrı kod var. “Topla” adlı işlev ise genel bir yardımcı işlev görevi üstlenecek. Yani biz bu başvuru dosyasını nereye eklersek ekleyelim bu işlevi Access’in kendi işleviymiş gibi kullanıp, form ve raporu da açabileceğiz. Bu dosyamızın adı Referans.mdb olsun.

Zorunlu olmasa da bir ayar yapmamızda fayda var. Başvurular kısmında bu dosyanın görünen ismini belirlememiz gerekiyor. Yani projemizin adını. (Visual Basic Editor'de Tools/Properties/ProjectName.)
Application.SetOption "Project Name", "İlk Referans Dosyamız"

Bunu yaparak başvurular kısmında dosyamızın adının “İlk Referans Dosyamız” şeklinde görünmesini sağladık.


Şimdi bunu kullanmak için kapayıp yeni bir Access dosyası açıyoruz. Yeni bir modül sayfası açarak Başvurular bölümünde bu dosyayı bulup seçelim. Sonra Object Browser ile ilk başvuru kitaplığımızı inceleyelim.

Şimdi alttaki satırları çalıştırmayı deneyelim.

KisilerRaporunuAc
KisilerFormunuAc
MsgBox topla(3, 5)

Böylelikle hem başka bir Access dosyası içindeki form ve raporu açabiliyoruz, hem de kendi ortak işlevimizi yazmış oluyoruz.

Tüm bunlardan sonra yapılması önerilen son bir işlem daha var. Başvuru dosyamızı derleyip kodlarını gizlemek ve kullanıma tam hazır hale getirmek. Şimdi Referans.MDB dosyasını tekrar açıp MDE dosyası oluşturalım. Tools/ Database Utilities/ Make MDE File (Araçlar/ Veritabanı Hizmet Programları/ MDE Dosyası Yap) seçeneği ile MDE dosyamızı oluşturduk. Bu şekliyle hem kimse kendi özel kodlarımızı ve tasarımlarımızı göremeyecek ve değiştiremeyecek hem de bu dosyamız normal bir EXE gibi hızlı çalışacak.

Dosyamız hazır. Kendisini belirtmek için uzantısını örneğin REF olarak değiştirirelim. Şimdi asıl programımızdaki başvuru işaretini kaldırıp Referans.REF dosyasını yeniden yüklememiz gerekecek.

Bu ilk kütüphanemizi Access içinden bir DLL ya da OCX gibi kullanabiliriz artık.

Başvurularla ilgili genel olarak anlatacaklarım bu kadar. Sonrasında bununla ilgili birkaç ipucu vermekle yetineceğim. Bu özelliği kullanmaya karar vereceğiniz zaman CodeDB ve CurrentDB adlı iki nesneyi hatırlamanız faydalı olabilir. Bir başvuru dosyası içinde CurrentDB kullanırsanız bu, başvuruyu kullanan dosyayı işaret eder. Ama CodeDB kullanıyor iseniz bu da kodun bulunduğu dosyayı yani başvuru dosyasının kendisini işaret etmiş olur. Sıkça kullandığımız CurrentDB yerine CodeDB kullanmamızın sakıncası yoktur aslında. Halihazırda CodeDB zaten kodun yazılmış olduğu uygulamanın kendisini ifade ediyor.

Alıntıdır!

İyi çalışmalar
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
harika bir soru ve cevap sağol modalı hocam...


kolay gelsin:)
 

ismailerkan15

Altın Üye
Katılım
23 Nisan 2005
Mesajlar
43
Excel Vers. ve Dili
2003 tr
Altın Üyelik Bitiş Tarihi
5-11-2026
elinize sağlık cok güzel olmuş akşam ilk iş denemesini yapacagım
 
Üst