ACCESS UYGULAMA YÖNETİŞİMİ

Access kırmızı kalkan logosu altında üç sütunlu yönetişim metaforu mimari erişim operasyon

Cuma akşamı saat 17:42. Muhasebe departmanından panik telefonu geliyor: "Access dosyası bozuldu, ayın raporunu pazartesi sabah yetiştiremezsek..." Tek bir .accdb dosyası, 14 kullanıcı, hiç yedek yok. Tanıdık geldi mi?

Access'in masaüstü hızı ve düşük öğrenme eşiği onu küçük ve orta ölçekli işletmelerde hızla popüler yapar. Aynı kolaylık yönetişim disiplini olmadığında, yıllarca biriken kritik veriyi tek dosyaya bağımlı hale getirir. Yönetişim tam burada devreye girer.

Access Uygulama Yönetişimi Nedir?

Yönetişim, bir Access uygulamasının yaşam döngüsü boyunca nasıl yapılandırılacağına, kimin neye erişeceğine, hangi sıklıkta yedekleneceğine ve nasıl bakımdan geçeceğine dair karar setidir. Tek geliştiricinin "kafasında tuttuğu" bilgi değil, yazılı kuraldır.

İyi yönetişimin üç ayağı vardır: mimari (frontend/backend ayrımı), erişim (kullanıcı ve rol tanımları) ve operasyon (yedek, bakım, sürüm).

Frontend ve Backend Ayrımı

Access uygulamalarında en temel mimari karar, tablolar ile formları, sorguları ve raporları aynı dosyada tutmamaktır. İki ayrı dosya yapılır:

  • Backend (.accdb): Yalnızca tablolar ve ilişkiler bulunur. Ağ paylaşımındaki bir klasörde durur. Tüm kullanıcılar bu dosyaya bağlanır.
  • Frontend (.accdb): Formlar, sorgular, raporlar, makrolar ve VBA kodu bulunur. Bağlı tablolar (linked tables) üzerinden backend'e bağlanır. Her kullanıcının kendi bilgisayarında bir kopyası durur.

Bu ayrımın faydası şudur: Formda bir hata düzelttiniz, yeni rapor eklediniz, backend'e dokunmadan yeni frontend'i kullanıcılara dağıtırsınız. Veri kaybı riski yoktur, herkes aynı veri üzerinde çalışmaya devam eder. Tek dosya kullanan ekiplerde her güncelleme veriyle birlikte gönderilir ve çakışmalar başlar.

Linked Tables Yönetimi

Frontend'deki bağlı tablolar backend'in mutlak yoluna bakar. Sunucu değişirse veya klasör taşınırsa tüm bağlantılar kopar. Bu yüzden Linked Table Manager'ı her dağıtımda kontrol edin; yol değişimini otomatikleştiren bir başlatma rutini (Autoexec makrosu veya açılış formundaki VBA bloğu) yazmak hayat kurtarır.

Üç kullanıcı bilgisayarındaki frontend ile merkezi sunucudaki backend Access dosyası bağlantı şeması

Kullanıcı İzinleri ve Erişim

Access 2007'den sonra kullanıcı düzeyinde güvenlik (User-Level Security) kaldırıldı. Daha ileri ayrıntılar Microsoft'un Access destek sayfasında ele alınır. Bu, "Access'te güvenlik yok" anlamına gelmez; yaklaşımı değiştirir. Modern yönetişimde izinler şu katmanlarda yönetilir:

  • Ağ paylaşımı: Backend dosyasının bulunduğu klasöre Windows üzerinden NTFS izinleri verilir. Kim okuyabilir, kim yazabilir, Active Directory grupları üzerinden tanımlanır.
  • Uygulama içi rol tablosu: Backend'de bir tblKullaniciRolleri tablosu açılır. Form yüklendiğinde Environ("UserName") ile Windows kullanıcısı okunur, rolüne göre menü ve butonlar gizlenir.
  • ACCDE derlemesi: Frontend .accde formatında derlenir; VBA kodu görüntülenemez, form tasarımı değiştirilemez. Son kullanıcının yazılımı bozması engellenir.

Bu üç katman çoğu uygulama için yeterlidir. Daha ileri güvenlik gerekiyorsa backend SQL Server'a taşınır; Access yalnızca frontend olarak kullanılır.

Yedekleme Stratejisi

Yedek olmadan yönetişim yoktur. Şu üçlü yaklaşım pratikte iyi sonuç verir:

  1. Saatlik gölge kopya: Windows Volume Shadow Copy ile backend bulunan klasörün anlık görüntüleri alınır. Kullanıcı yanlışlıkla 200 kayıt sildiyse bir saat öncesine dönülür.
  2. Gece otomatik kopya: Zamanlanmış görev backend dosyasını başka bir sunucuya kopyalar. Tarih damgalı 14 günlük rotasyon tutulur.
  3. Haftalık offsite: Bulut depolama (OneDrive for Business, Azure Blob) veya farklı binadaki NAS'a haftalık tam yedek.

Yedek almak yeterli değildir, düzenli olarak geri yükleme testi yapılır. Üç ay önceki yedek bozuksa, kriz anında öğrenmek pahalıya patlar.

Bakım Rutini

Access dosyaları zamanla şişer; silinen kayıtların boş alanı dosyada kalır, indeksler fragmente olur. Düzenli "Compact and Repair" işlemi disk kullanımını ve sorgu performansını iyileştirir.

Backend'i compact etmek için tüm kullanıcıların çıkması gerekir. Bu yüzden çoğu ekip cuma akşamı veya pazar gecesi otomatik bakım penceresi tanımlar. Frontend'in compact'i her kullanıcının kendi bilgisayarında, çıkışta otomatik yapılabilir (Access seçenekleri > Current Database > Compact on Close).

Sürüm Yönetimi

"Erhan_son_versiyon_v3_GERCEK.accdb" gibi dosya adları yönetişim eksikliğinin klasik belirtisidir. Profesyonel akış şöyle olur:

  • Frontend versiyonu form üzerinde gösterilen küçük etikette tutulur (ör. v2.4.1)
  • Her sürüm tarih damgalı klasöre arşivlenir; "current" alt klasörü her zaman aktif sürümü gösterir
  • VBA modülleri ayrıca .bas dosyası olarak Git deposuna export edilir; kod tarihçesi versiyon kontrolünde tutulur
  • Yeni sürüm dağıtılırken kullanıcılara kısa changelog gönderilir

Access'in daha gelişmiş tarafını öğrenmek için kapsamlı ileri Access eğitimi sorgu, VBA ve çok kullanıcılı senaryoları birlikte işliyor. Temelleri tazelemek isteyenler ise uygulamalı Access eğitimi sayfasından yararlanabilir.

Yönetişimsizliğin Maliyeti

İyi yönetilmeyen Access uygulamasının tipik sonu: 3-5 yıl sonra dosya 1.5 GB'a şişer, hız düşer, hatalar artar. "Yeni bir yazılım alalım" kararı verilir; geçiş projesi planlanır. Çıkartılması gereken iş kuralları kimsenin tam bilmediği VBA modüllerinden çıkartılır. Aylar süren ve bütçeyi aşan bir göç başlar.

Oysa frontend/backend ayrımı kurulan, sürümleri takip edilen, gece yedeklenen, ayda bir compact edilen bir Access uygulaması on yıl boyunca sorunsuz çalışabilir. Yönetişim, bugünkü disiplinle yarının teknik borcunu önlemektir.

Sıkça Sorulan Sorular

Access frontend ve backend ayrımını sonradan yapabilir miyim?

Evet, mevcut dosya üzerinden geriye dönük yapılabilir. Access'in Database Splitter aracı Database Tools sekmesinden çalıştırılır, tabloları yeni bir backend dosyasına taşır ve mevcut dosyayı frontend'e dönüştürür. Linked Table bağlantıları otomatik kurulur. İşlem öncesi tam yedek almak şarttır.

Backend dosyasını OneDrive veya Google Drive üzerinde tutabilir miyim?

Önerilmez. Bulut senkronizasyon servisleri dosyayı tamamen kopyalar; iki kullanıcı aynı anda yazdığında çakışma kopyaları oluşur ve veri kaybı yaşanır. Backend yerel ağ paylaşımında veya VPN üzerinden erişilen sunucuda tutulmalı, buluta yalnızca yedek olarak gönderilmelidir.

Kaç kullanıcı aynı anda Access dosyasına bağlanabilir?

Teknik olarak 255 kullanıcı sınırı vardır ancak pratikte sorunsuz çalışan üst sınır 15-25 eşzamanlı kullanıcıdır. Daha fazlasında kilit çakışmaları ve performans düşüşü başlar. Bu noktada backend'in SQL Server veya SQL Server Express'e taşınması düşünülmelidir.

ACCDE formatı VBA kodunu tamamen güvenli yapar mı?

ACCDE, VBA kaynak kodunu kaldırır; kullanıcı kodu okuyamaz veya değiştiremez. Ancak veri güvenliğini sağlamaz, sadece tasarım korumasıdır. Hassas veriler için NTFS izinleri, uygulama içi rol tablosu ve gerekirse SQL Server arka uç birlikte kullanılmalıdır.

Compact and Repair işlemini ne sıklıkta yapmalıyım?

Aktif kullanılan backend için ayda bir, frontend için her kullanıcının çıkışında otomatik. Çok yoğun veri girişi yapılan uygulamalarda haftalık. Dosya boyutu hızla büyüyorsa veya sorgu hızı düştüyse derhal yapılmalıdır. İşlem öncesi yedek almak zorunludur.

Access yönetişiminde Git versiyon kontrolü nasıl kullanılır?

Access dosyası ikili formatta olduğu için doğrudan Git ile takip edilmez. Pratik yaklaşım: VBA modülleri SaveAsText komutuyla .bas dosyalarına export edilir, formlar ve raporlar ayrı metin dosyalarına çıkarılır. Bu metin dosyaları Git deposunda tutulur, değişiklikler diff olarak görülebilir.

Eski Access dosyasını yönetişime dahil etmek için nereden başlamalıyım?

Önce tam yedek alın. Sonra sırasıyla: dosyayı split edin, backend'i ağ paylaşımına taşıyın, otomatik gece yedek görevi kurun, ACCDE frontend dağıtın, kullanıcı listesini ve rolleri yazılı bir dokümanda netleştirin. Bir hafta içinde temel yönetişim hayata geçer.