|
Bağlı Tablolar
Access başka veri kaynaklarından da kendisine tablo bağlanmasına izin veriyor.
Altından kalkamadığı durumlarda ise yardımına ODBC koşuyor.
Tablo bağlama işleminin Access’in İngilizce sürümündeki adı Link. Farklı türdeki
birçok veri tablosunu Access dosyalarının içine bağlamak mümkün. Örneğin
Excel’de hazırlanmış bir tabloyu Access’in içinden rahatlıkla kullanabilirsiniz.
Sabit sütunları olan bir Excel tablosunu Access’e bağlamak için Access’teki
Dosya / Dış Veri Al / Bağlı Tablo (File / Get External Data / Link Tables)
komutunu çalıştırıp bir Excel dosyası seçmek yeterli. Sonrasındaki soruları da
geçerek Excel tablosunu kolayca bağlamış oluyorsunuz.
Bu özellik öncelikle Access tablolarını başka Access tabloları içine bağlamak
için var. Access 2000 dosyası içine Access 97 sürümündeki bir dosyanın tablosu
bağlanabiliyor. Böylece tabloyu uzaklarda aramadan doğrudan kullanabiliyorsunuz.
Bazan, ayrıntılara dikkat etmenin ne kadar önemli olduğundan bahsediyorum. Eğer
tablo bağlama penceresindeki dosya türleri (file of types) listesine dikkat
ederseniz orada metin dosyalarından tutun Exchange tablolarına kadar birçok
seçenek göreceksiniz.

Bağlı tabloları herhangi bir Access tablosuymuş gibi kullanabilirsiniz.
Outlook Express’teki adres defterimi başka bir
yerden kullanabilmek hiç bu kadar kolay olmamıştı. Tablo bağlama penceresinde
dosya türü olarak Exchange’i seçtikten sonra açılan pencereden Adres Defteri’ni
seçip Access dosyasının içine bağladım. Aynı şey e-posta iletileri için de
geçerli.
Kayıtlar içeren metin dosyaları için de hemen hemen aynı şeyler geçerli. Fakat
bu dosyalar veritabanı yapısında olmadığı için tablo bağlarken bazı ayarlamalar
gerekiyor. Virgülle, tab işaretiyle ayrılmış veya sabit uzunluklu alanlar içeren
bir metin dosyasını, tablo bağlama penceresinden seçin. Açılan formlarla
birlikte gerekli ayarlamaları kolayca yapabilirsiniz. Nihayetinde metin
dosyasını (sadece okunur) bir tablo olarak kullanabilirsiniz.

SQL Server tablolarını bağlamak için ODBC Databases’i seçin.
Bazı tabloların sadece okunur olarak görüntülenebileceğini unutmayın. Metin
dosyalarını standart veritabanı tabloları gibi yönetmek kolay olmadığı için
kayıt değişikliği yapılmasına izin verilmemesi normal. Aynı şekilde çok büyük
metin dosyalarını kullanırken iyi bir performans beklememelisiniz. Zaten
veritabanı sistemleri varken büyük metin dosyalarını tablo olarak kullanmaya
ihtiyaç yoktur genelde.
FORM ÜZERİNE RESİM DÖŞEMEK
Formların ve raporların üzerine resim yerleştirmek için özellikler penceresinde
birkaç seçenek var. Orada “picture” ile başlayan altı seçeneği inceleyip nasıl
kullanıldıklarını ve ne işe yaradıklarının hemen öğrenebilirsiniz.
Resmi döşemek için Picture Tiling özelliği kullanılıyor.
Picture özelliğine resim dosyasının konumu yazılıyor. Hemen altındaki Picture
Type seçeneğindeki Embedded değeri bu resim dosyasının Access dosyasının içine
fiziksel olarak dahil edileceğini belirtiyor. Aksi halde orada Linked değerinin
seçili olması resim dosyasının Access dosyasına dahil edilmeyeceğini, resmin
belirtilen disk konumundan her seferinde yeniden çağrılıp görüntüleceğini işaret
ediyor. Tabii bu seçenek, görüntüleme süresini biraz artırıyor. Resmin anında
görüntülenmesi gerekiyorsa Embedded seçeneğini işaretleyin.
Raporlara özgü Picture Pages seçeneği ile arkaplan resminin sadece ilk sayfada
ya da tüm sayfalarda görüntülenmesini sağlayabilirsiniz.

PictureTiling özelliği ile arkaplan resmi form üzerine döşeniyor.
ACCESS PENCERESİNİ
YERLEŞTİRMEK
Geçen aylarda Access penceresinin masaüstünde kolayca yerleştirilebileceğiyle
ilgili bir kod örneği vardı. Bu sayıdaki örnek ise eskisinin biraz daha gelişmiş
hali. Kod biraz uzun olduğu için bu sayfalara kıyamıyorum. Dergide Adı Geçen
Dosyalar bölümündeki dosyada kodu bulabilirsiniz.

Access penceresi yerine herhangi başka bir
program penceresinin boyutlarını değiştirmek isterseniz koddaki hWndAccessApp
yerine ilgili pencerenin Handle (hWnd) değerini yazmanız yeterli.
Bunun için FindWindow gibi bir API komutuna ihtiyacınız olabilir. Onu da şu
şekilde yapabilirsiniz:
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Sub Deneme()
Dim h As Long
h = FindWindow("Notepad", "Adsız - Not Defteri")
MsgBox “Not Defteri’nin HWND değeri = “ & h
End Sub
TUŞ BASILI MI DEĞİL Mİ
Windows’ta ve diğer programlarda olduğu gibi Ctrl, Shift ve Alt tuşlarını
kısayollara eklemek ve işlem anında bunların basılı olup olmadığını kontrol
etmek profesyonel bir görünüm kazandırabilir programlarımıza.
Örneğin bir sıralama işlemi yaptırırken Shift tuşu basılı ise sıralamayı tersten
yaptırırım.
Yeni bir modül oluşturup en üstteki Option Compare Database ve varsa Option
Explicit satırlarının altına şu satırları yerleştirin:
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As
Integer
Public Const VK_SHIFT = &H10 'SHIFT
Public Const VK_CONTROL = &H11 'CTRL
Public Const VK_MENU = &H12 'ALT
Programınızın herhangi bir yerinde, basılı olup olmadığını bulmak istediğiniz
tuşlar için şu kodu kullanabilirsiniz artık:
If GetKeyState(VK_SHIFT) < 0 Then MsgBox "SHIFT tuşu basılı."
If GetKeyState(VK_CONTROL) < 0 Then MsgBox "CTRL tuşu basılı."
If GetKeyState(VK_MENU) < 0 Then MsgBox "ALT tuşu basılı."
KAYIT SİLME KODUNUN SON SÜRÜMÜ
Daha önce iki kez farklı kayıt silme kod örnekleri vermiştim. O kadar satırlık
kod parçası iki satıra sığabiliyor. İşte son sürüm kayıt silme kodu:
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
HERKES İÇİN SORGULAR
Sıkça sorulan bir SQL sorusu, belli kayıtların bulunup değiştirilmesi ile
ilgili.
Access’te yeni bir sorgu oluşturup Query (Sorgu) menüsünden Update Query’yi
(Değiştirme Sorgusu) seçin.
Değiştirmek istediğiniz veri alanlarını alt taraftaki sütunlara yerleştirip
UpdateTo kısmına yeni değerleri yazın. Sadece belli kayıtları değiştirmek
istiyorsanız Criteria (Koşul) alanını doldurmayı unutmayın. Aksi halde bütün
kayıtlarınız değiştirilir.

Resimdeki sorgu Meslek alanındaki “Talebe”
değerlerini “Öğrenci” olarak değiştiriyor.
UPDATE Kisiler SET Meslek = "Öğrenci" WHERE Meslek="Talebe";
Değiştirilecek alan için koşul belirtmek zorunda değilsiniz. Bu kod Kisiler
tablosunda Meslek alanı değerinin “Ev Hanımı” olduğu kayıtlardaki Cinsiyet
alanına “Kadın” değerini ve Askerlik alanına “Muaf” değerini yazıyor:
UPDATE Kisiler SET Cinsiyet=“Kadın”, Askerlik=“Muaf” WHERE Meslek=“Ev Hanımı”;
Koşul belirtmeye gerek yok tabii. Şu SQL kodu ile tüm müşteri kayıtlarındaki
MektupGonder alanı True (Evet) olarak güncelleştirilir:
UPDATE Musteriler SET MektupGonder = TRUE;
ODE TOOLS
Şu sıralar ODE Tools ile ilgili sorular çoğaldı. İşte kısa cevaplar:
• ODE Tools 2000 = Microsoft Office 2000 Developer Tools.
• ODE Tools ile Access kurulu olmayan bilgisayarlarda Access’te yapılmış
programları çalıştırabilirsiniz.
• Access dosyaları EXE yapılmıyor. Ama kodlar ve tasarım bilgileri tamamen
gizlenip dosya derlenebiliyor. Bunun için ODE Tools’a gerek yok. Dosyayı MDE
dosyası yapmalısınız.
• Program ile Access projeleri için kurulum paketi (setup) hazırlanıyor. Tabii
sadece bu işi yapmıyor. İçerisinde Office’te programlama ile ilgili başka
eklentiler de var.
• ODE Tools’u bir defa satın almış olmakla, bununla hazırladığınız kurulum
programlarınızı sınırsız sayıda ve tamamen ücretsiz dağıtma hakkınız olur.
Kurulum programlarınız her bilgisayara, yasal bir kısıtlama olmaksızın
kurulabilir.
• Ayrı olarak satılabiliyor ve ayrıca Office 2000 Developer Edition paketi
içinde yer alıyor. Office 97 için de aynı şekilde sürümleri mevcut. Fakat ODE
Tools 97 şu an piyasada değil.
• Programı Linksoft’tan satın alabilirsiniz. Tel: 0(216) 522 00 22.
• Lisans kontrollerinde öncelikle faturaların incelendiğini unutmayın.
• Programı satın almadan önce PC Magazine’in Temmuz 2000 ve Ocak 2001 tarihli
sayılarındaki ODE Tools incelemelerine gözatmanızı tavsiye ederim.
SORULARLA İLGİLİ
Okurlarımızın gönderdiği soruların hemen hepsine cevap yazmaya çalışırım. Fakat
bir yığın sorunun tamamına kısa sürede cevap yazmak mümkün değil. Çoğunlukla
araştırma yapmak gerekli ve mesai sırasında işten çokça vakit ayırmak pek doğru
olmasa gerek. Gelen mesajları vaktimin yettiği kadarıyla akşamları evden
yanıtlayabiliyorum genelde.
Sadece bana gönderdiğiniz postalarda değil, başka yerlere gönderdiğiniz
postalarda da mesajlarınızın içindeki soruları kısa tutmanız ve birçok soruyu
tek bir mesaj içinde toplamamanız cevap alma sürenizi azaltabilir. Ayrıca
kullandığınız Access’in (yani probleme konu olan programın) hangi sürüm ve dilde
olduğunu belirtirseniz daha iyi olur.
Haber grupları sorulara cevap bulmak için daha efektif oluyor. Oralarda çok daha
kısa sürede ve ayrıntılı çözümler bulunabiliyor. Zira yüzlerce kişi sorunuzu
okuyor ve problemin çözümünü bilenler mesajınızı cevaplıyorlar.
Sorularınızın birçoğu haber gruplarında geçmiş tarihlerde başkaları tarafından
sorulup cevaplanmış olabiliyor. Problem için öncelikle Internet’ten ve haber
gruplarından araştırma yapmak daha hızlı bir çözüm olabilir.
Internet’te de Access’le ilgili Web sayfaları mevcut. Bir daha ki ay için
Access’le ilgili kişisel web sitelerinin adreslerini gönderirseniz bu bölümde
yayınlayacağız. Bu arada Access’le ilgili kapsamlı bir site olan The Access Web
sitesini de sıkça ziyaret etmenizde fayda var.
http://www.mvps.org/access
Mvps.org sitesinde Access dışında VB, API, VC gibi konularda çok kapsamlı birkaç
bölüm daha var. Site, Microsoft tarafından MVP ünvanı (Microsoft’s Most Valuable
Professional - bir nevi fahri Microsoft mühendisliği) verilmiş kişiler
tarafından oluşturulmuş. Oradaki diğer bağlantılar arasında başka MVP’lerin siteleri
için de adresler verilmiş. Outlook Express için epey kapsamlı bilgiler içeren
bir MVP sitesi bile varmış nitekim.
Okurlarımızdan gelen bazı soruların cevapları ise eski sayılarımızda yer
alabiliyor. Mayıs 2000’de başlayan bu dizinin önceki yazılarını PC Magazine
Online sitesindeki Eski Sayılar Arşivi bölümünde bulabilirsiniz. Bu yazıları da
elinizin altında bulundurmanız faydalı olacaktır.
PC Magazine sitesindeki Dergide Adı Geçen Dosyalar bölümünde ise aynı tarihten
başlayacak şekilde bazı aylara ait Access’le ilgili örnek çalışma dosyaları yer
alıyor.
DOSYA:
AccessNisan2001.rar
Serkan Şahinoğlu
PC Magazine,
Nisan 2001
|