13-05-2014, 19:54
(20-10-2010, 00:26)Berkant Öztürk demiş ki:
Merhaba arkadaşlar;
Access ile birlikte kullanabileceğiniz ve içinde 7, aslında 8 ayrı fonksiyon bulunan çok amaçlı bir DLL hazırladım. Başta da belirtmem gerekir ki bu DLL dosyasını Access, Excel, VB6 veya .Net gibi projelerinizde rahatlıkla kullanabilirsiniz.
DLL dosyamızı kullanmak için öncelikle “Access-Sql.dll” ve “Access-Sql.tlb” dosyalarımızı daha rahat bir kullanım için "C:\Windows\System32" içine alalım. Daha sonra ise “RegisterDLL” isimli Bat dosyamızı çalıştıralım. Eğer işletim sisteminiz Vista ya da Win7 ise bu Bat dosyasını mutlak suretle Dosya üzerine sağ klik yaparak “Yönetici Olarak Çalıştır” demeliyiz. Aksi halde register işlemi olmayacaktır. Eğer isterseniz register işlemini manuel de yapabilirsiniz ama bunu regsvr32 ile değil "C:\Windows\Microsoft.NET\Framework\v2.0.50727" içinde bulunan “regasm.exe” ile yapmalıyız. Bat dosyasına sağ klik yapıp düzenleyi seçerek register için gerekli parametreleri de görebilirsiniz.
Peki bu DLL ne iş yapar, hangi hazır fonksiyonları içeriyor.
1- Hakkinda_Yap fonksiyonu:
Bu fonksiyon en son eklediğim fonksiyondu koymakta da kararsız kaldım ama Access uygulamalarımıza .Net Windows Formu koymak ilgi çekici olabilir diye düşündüm. Adından da anlaşılabileceği üzere bu bize basit bir “Hakkında” formu oluşturuyor. Bu formu oluşturabilmek için 5 ayrı parametre girmemiz gerekiyor. Örnek Access dosyamızda bu parametreleri ve işlevlerini görebilirisiniz. Bu fonksiyon aslında 1. Sırada göreceğiniz “Hakkinda” fonksiyonuyla aynı özellikleri taşır ama “Hakkinda” Fonksiyonu sadece bana aittir ve özelleştirilemez. “Hakkinda” ve “Hakkinda_Yap” fonksiyonlarını karıştırmayalım.
2- HavaDurum fonksiyonu:
Bu hazır fonksiyonumuz ile Ülkemiz illeri de olmak üzere dünya üzerindeki bir çok şehrin sıcaklık ve nem bilgilerini kolayca alabileceksiniz. Kullanımı son derece kolaydır. Tek parametre ister o da şehir ismi.
Örneğin;
bb.HavaDurum("İstanbul")
bize İstanbul’un hava sıcaklığını verecektir. Büyük küçük harf hassasiyeti de yoktur.
3-IpAdresAl fonksiyonu:
İnternet çıkış IP adresimizi ve bize bunu almamızı sağlayan servisin bu IP aralığında bulunan kriterlerine göre kendi şehrimizi ve ülkemizin adını alabiliriz. Şehir isminde çok tutarlı olduğunu söyleyemeyiz ama gayet başarılı bence. Fonksiyonumuzda parametre gerekmemektedir. Örneğin ;
bb.IpAdresAl
4-KurAl fonksiyonu:
TCMB döviz kurlarını son derece kolay biçimde alabileceğimiz bir fonksiyon. İstediğimiz döviz cinsi koduna, işlem cinsine ve tarihe göre kur bilgilerini alabiliriz. 3 parametre ister. Örneğin;
bb.KurAl("USD", "ForexBuying", "19.10.2010")
bu şekilde USD, Döviz Alış kurunu 19.10.2010 tarihine göre alabiliriz. Detaylı örnek ve Döviz kodlarını ekteki örnekte görebilirsiniz.
5-TCNo_Dogrula fonksiyonu:
Gireceğimiz 4 ayrı parametreye göre yazmış olduğumuz TC NO’nun doğru ya da yanlış olduğunu bize kesin olarak söylemektedir. Örneğin; bb.TCNO_Dogrula("12345678912", "İsim", "Soyisim", "1999")
6-Tercume fonksiyonu:
Google’ın apisi kullanılarak dünya üzerindeki birçok dilde biribirleri arasında çeviri yapabileceğiniz fonksiyonumuz. Kullanımı yine son derece basittir 3 parametre girmek gerekiyor. Örneğin;
bb.Tercume("Hello", "en", "tr")
yani “Hello” kelimesini İngilizceden, Türkçeye çevir demiş olduk. Tabii biz bunu bu şekilde değil bu parametreleri ilgili nesnelere bağlayarak çok daha efektif ve kullanışlı bir şekilde değerlendireceğiz. Tüm fonksiyonlarda olduğu gibi bu fonksiyonun da örneği ektedir. Ayrıca çeviri yapabileceğiniz dil kodlarını (en, tr, ja) gibi kodları;
http://code.google.com/intl/tr/apis/igoo.../i18n.html
adresinden alabilirsiniz.
7-YaziyaCevir fonksiyonu:
Numerik olarak girilmiş sayılarımızı kolayca metne dönüştürür. Bilhassa faturalarda çok işe yarar. 3 parametre ister. Örneğin;
bb.YaziyaCevir("1254,25", "TL", "KR")
ve çıkışı ise “binikiyüzellidört TL, yirmibeş KR” .. Neden 3 parametre diyebilirsiniz. Biz sonuna birimi ayrıca ekleyebilirdik de diyebilirsiniz. Tam sayılar için haklısınız ama ondalıklı sayılarda tamsayı birimine bu değeri atamak çok sıkıntılı olabilirdi. Oysa bu şekilde çok basit üstelik 2 birim de kullanmak zorunda değilsiniz örneğin;
bb.YaziyaCevir("1254,25", "", "Litre")
çıkışı ise;” binikiyüzellidört , yirmibeş Litre” dir.
DLL'i kendi uygulamalarınzıda kullanabilmeniz için "Access-Sql.com - Berkant Ozturk" isimli referansı eklemeniz gerekmektedir. Zaten DLL yi register ettikten sonra bu referans kullanıma hazır olacaktır. Referanslar arasında göremezseniz Referans penceresinde browse diyerek System32 içinden "Access-Sql.tlb" dosyasını seçerek ekleyiniz. Dikkat edin dll değil tlb dosyasını seçeceksiniz.
Göreceğiniz üzere hazırladığım bu özel dll yardımı ile bir çok yararlı fonksiyonu çok kolay bir şekilde sanki yerleşik bir fonksiyonmuş gibi Access’e türlü taklalar attırmak zorunda kalmadan kullanabiliriz. Aslında DLL de yer alan fonksiyonların çoğunu Access içinde de zaten yapmıştım ama .Net ile bir Com Class oluşturmak ve .Net in gücüyle bunları Access'te kullanmak pek rastlayabileceğimiz bir durum değildir..
Berkant Öztürk
Merhaba Berkant bey,
Ekli dosyaya ulaşılamıyor. Zannediyorum silinmiş. Eklemeniz mümkün müdür?
Selamlar,

![[Resim: DllFonk.jpg]](http://www.access-sql.com/images/DllFonk.jpg)