DOSYALAMA İŞLEMLERİ ve MENÜ HAZIRLAMA
Programdaki bazı bilgilerin kalıcı olması için saklanması ihtiyacı her zaman vardır. Örneğin personelle ilgili işlemler yapan bir programın personel bilgilerini kaydetme imkanı sağlaması gerekir. Bunun için dosyalama işlemlerine gerek duyulur. Şimdi hazırlayacağımız projelerde kayıt giriş işlemi, kayıt düzeltme, kayıt silme ve liste alma işlemlerini ayrı ayrı inceleyelim.
15.1. Dosyaya Kayıt Girme
Öncelikle dosyaya kayıt olarak hangi bilgilerin yazılacağı belirlenmelidir. Bir kayıtta bulunan bilgileri dışarıdan girerken kullanmak üzere bir Form hazırlayacağız. Hazırlamak istediğimiz örnek veri tabanı dosyasına yazılacak her kayıtta şu bilgiler olacaktır:
1. Ad 4. Adres
2. Soyad 5. P.kodu
3. Telefon 6. Sehir
Kayıt bilgilerinin her birine
alan adı verilmektedir. Kayıtta bulunan bütün bilgiler karaktersel tipte olacak. Bu amaçla hazırlayacağımız Giris adlı projenin formunda kayıtta bulunacak alanlarla aynı ada sahip TextBox'lar ve TextBox'lar için gerekli olan Label'ler hazırlanır. Kayıt girişi amacıyla kullanacağımız formun hazırlanmış hali Şekil 15.1'de verilmiştir.Şekil 15.1:
Kayıt giriş formu Properties penceresinden de (Şekil 15.2) görüldüğü gibi formun başlığı "Kayıt Girişi" formun adı ise "GIRIS" olarak alındı. Ayrıca "Kayıt No" başlığına sahip olan Label nesnesinin hemen yanında bulunan ilk TextBox'a "kayıt no" ve diğerlerine ise sırasıyla "ad", "soyad", "telefon", "adres", "kod" ve "sehir" adları verildi.Şekil 15.2: Properties penceresi
Projeye Module dosyası eklemek
için Şekil 15.3'de görülen Project menüsündeki Add
module seçeneğinden yararlanılır.
Şekil 15.3: Projeye Modül dosyası ekleme
Project menüsünden Add Module komutunu verirseniz ekrana projeye modül ekleme işlemi öncesinde Şekil 15.4'de görülen Add Module diyalog kutusu gelir.Şekil 15.4: Add module diyalog kutusu
Şekil 15.5: Kayıt Tipli değişken
tanımlama
Şekil 15.6
Şekil 15.7
Yukarıdaki ekranda dikkat
ederseniz, imleç kayıt girişini ikinci TextBox' tan itibaren beklemektedir.
Bunun nedeni KayıtNo adlı TextBox nesnesine kayıt girişi engellenmiştir ve şu
şekilde yapılmıştır ; Söz konusu Textbox aktif durumda iken Şekil 15.8'de
görülen properties penceresinden TabStop özelliğine False değeri aktarılmıştır.
Şekil 15.8: TabStop özelliğinin False yapılması
Kayıt girişi projesi çalıştırıldığında, gelen pencerede Üç düğme veya buton bulunmaktadır. Bunlardan çıkış başlığına sahip olan düğme programı sonlandıracaktır. Çıkış butonuna, bu işlevi yüklemek için tasarım ekranında iken buton üzerinde çift tıklanırsa Şekil 15.9'da görülen kod sayfasına geçilir. Burada, çıkış için gereken, önce Close komutu ile dosyayıŞekil 15.9 : Çıkış düğmesine ait kod sayfası
Artık program çalıştırılıp gelen penceredeki çıkış düğmesine basıldığı zaman programdan çıkılır. Şimdi de Kaydet düğmesine basıldığı zaman TextBox'lara yapılan girişlerin dosyaya kaydedilmesi için gereken kodu Şekil 15.10'daki gibi yazıyoruz.Alanlar.Ad=Giris.Ad
Alanlar.Soyad=Giris.Soyad
Alanlar.Tel=Giris.Tel
Alanlar.Adres=Giris.Adres
Alanlar.Kod=Giris.Kod
Alanlar.Sehir=Giris.Sehir
Bu işlemden sonra MsgBox() fonksiyonu ile kullanıcıdan onay alınmaktadır. MsgBox() fonksiyonu ile ekrana getirilen diyalog kutusunda Evet düğmesine tıklama yapılırsa aşağıda verilen program satırları işletilir.
İf Cevap=6 Then
Put #1, KayıtNo,Alanlar
KayıtNo=KayıtNo+1
Giris.Ad = " "
Giris.Soyad = " "
Giris.Tel = " "
Giris.Adres = " "
Giris.Kod = " "
Giris.Sehir = " "
Ad.SetFocus
End if
Bu program satırlarında önce Put deyimi ile kayıt tipli Alanlar değişkeninin içeriği dosyaya yazılmaktadır. Yazma işleminden sonra KayıtNo değişkeninin içeriği 1 arttırılmaktadır. Daha sonra TextBox'ların içeriğine boşluk değerleri aktarılıyor. Kaydet düğmesine tıklama yapılarak gerçekleştirilen kayıt işleminden sonra imlecin yerini belirlemek için SetFocus özelliğinden yararlanılır. Kullanıcı formdaki TextBox'larda bulunan kayıt bilgilerini dosyaya yazmak istemiyorsa Vazgeç düğmesini seçebilir. Vazgeç düğmesi için hazırlanan program kodlarını Şekil 15.11'de verilen kod penceresinde görebilirsiniz.Şekil 15.11 : Vazgeç düğmesine ait kod
penceresi
15.2. Dosyadan Kayıt Okuma
Bir önceki konuda verilen proje örneğinde, hard diske açılan "Adres.dat" adlı dosyaya nasıl kayıt yapılacağı konusunda bilgi verildi. Şimdiki projemizde ise "Adres.dat" dosyasından nasıl bilgi okunacağı ve ekrana yazılacağı konusunda bilgi verilecektir.
Kayıt okumak amacıyla hazırlayacağımız projeyi hard diske Okuma.Vbp olarak kaydedeceğiz. Bu proje çalıştırıldığında, kullanıcı tarafından girilen kayıt nosuna göre kayıt dosyadan okunacak ve kaydın ayrıntıları Form üzerindeki TextBox nesnelerine yazılacak. Bu amaçla Şekil 15.12'deki gibi bir form düzenleyeceğiz. Bu form kayıt yazmakŞekil 15.12 : Kayıt Okuma formu
Bu formdaki ilk TextBox bilgi giriş amacıyla kullanılacak. Diğer metin kutuları sadece bilgi görüntüleme amacıyla kullanılacak. Bu nedenle ilk TextBox hariç bütün TextBox'ların TabStop özellikleri False durumuna getirilmelidir.Proje çalıştırılır çalıştırılmaz önce kullanıcıdan kayıt numarası girilmesi istenir. Bu sırada "KayıtNo" adlı TextBox'ta dosyada bulunan en son kaydın numarası gelir. Girilecek kayıt numarası bu değerden küçük olmalıdır. Şekil 15.13'de verilen ekran görüntüsü, kayıt okumak amacıyla hazırlanan proje
çalıştırıldıktan sonra alınmıştır.
Şekil 15.13
Şekil 15.14
Kayıt numarası girildikten sonra enter tuşuna basıldığında,
ekrana kayıt bilgilerinin gelmesi için Şekil 15.15'deki kod sayfası
düzenlendi.
Şekil 15.15
Keypress() olayı bir tuşa basılması ile işleme girmektedir. Basılan tuşun ASCII kodu, KeyAscii değişkenine aktarılır. Program satırında basılan tuş Enter, yani KeyAscii değişkenine aktarılan değer 13 olursa, önce Get komutu ile dosyadaki kayıt bilgileri Alanlar değişkenine aktarılmakta ve sonra Alanlar içerisindeki bilgiler TextBox'lara aktarılmaktadır ( Okuma.Ad=Alanlar.Ad gibi ).Çıkış düğmesi için yazılacak kod ise Şekil 15.16'da görülen kod penceresindeki gibidir.
Şekil 15.16: Çıkış düğmesi kod sayfası
15.3. Kayıt Düzeltme
Bu kısımda kullanıcıdan, üzerinde değişiklik yapacağı kaydın numarasını girmesini isteyeceğiz. Kayıt numarası verilen kaydı dosyadan okuyup ekrana getirip kullanıcıya kayıtta değişiklik yapma imkanı vereceğiz. Eğer kayıt üzerinde herhangi bir değişiklik yapılmışsa, kaydın yeni şeklini tekrar dosyaya yazacağız. Bu işlemler için hazırlayacağımız form Şekil 15.17'deki gibi olacaktır.
Şekil 15.17: Kayıt düzeltme formu
Şekil 15.18
Şekil 15.19
Okunacak kaydın numarası yazılıp Enter tuşuna basılması
ile kaydın dosyadan okunup ekrana getirilmesi için Şekil 15.20'de verilen
program kodlarını yazdık.
Şekil 15.20
Bu program satırlarının işletilebilmesi için imleç KayıtNo adlı metin kutusu nesnesi içinde iken KeyPress olayının yani klavyeden bir tuşa basılması olayının meydana gelmesi gerekmektedir. Ne zaman klavyeden bir tuşa basılırsa Kayıtno_KeyPrees adlı yordam işletilir. Eğer basılan tuş Enter tuşu ise yani ASCII kodu 13 ise If - End If bloğu işletilir. Kayıtlar Get deyimi ile okunup, Alanlar adlı kayıt tipli değişkenlere aktarılan bilgiler daha sonra Duzeltme adlı formda bulunan aynı adlı TextBox'lara aktarılır. Okunup ekrana getirilen kayıtta kullanıcı istediği değişikliği yapabilir. Yapılan değişikliklerden sonra kaydın yeni şeklini tekrar dosyaya yazmak için kaydet düğmesini kullanacağız. Bu düğmede tıklama yapılınca Kaydet_Click yordamı işletilecektir. Kaydet düğmesine ait program satırları Şekil 15.21'deki gibidir. Aşağıda verilen program satırlarında sadece Ad ve Soyad'da değişiklik yapılıp yapılmadığı kontrolŞekil 15.21:
Kaydet düğmesine ait kod penceresi
Şekil 15.22
Eğer burada verilen cevap Evet olursa secim değişkenine 6 değeri aktarılır ve önce TextBox'lardaki bilgiler Alanlar adlı kayıt tipli değişkenlere aktarılır daha sonra Put deyimi ile Alanlar'daki bilgiler dosyaya kaydedilir ve Textbox'ların içerikleri boşaltılır. Böylece kaydet düğmesi ile yapılan değişiklikler dosyaya kaydedilmiş olur.Yapılan değişiklikler kaydedilmek istenmiyorsa Vazgeç düğmesi kullanılır. Bu düğme için yazılmış program kodu ise Şekil 15.23'deki gibidir.
Şekil 15.23 : Vazgeç düğmesine ait kod
penceresi
15.4. Kayıt Silme
Rasgele erişimli bir dosyadan kayıt silmek için önce söz konusu dosya açılır. Ardından silinmek istenen kayıt, kayıt numarasına göre ekrana getirilir. Hazırlayacağımız form Şekil 15.24'deki gibi olacaktır.
Şekil 15.24: Kayıt silme formu
Şekil 15.25
Proje çalıştırıldığında, imleç Kayıtno adlı TextBox'ta kullanıcıdan okunup silinecek kaydın numarasını bekler. İstenen kayıt numarası girilip Enter tuşuna basılırsa, ilgili kayıt dosyadan okunup ekrana getirilir. Kayıt numarası girilip Enter tuşuna basıldığında söz konusu kaydın ekrana gelmesi için Şekil 15.26'daki program satırları yazılır.Şekil 15.26: Girilen numaradaki kaydı ekrana getiren program satırları
Dosyadan okunup ekrana getirilen kaydı dosyadan silmek için Sil düğmesini kullanacağız. Silme düğmesine basıldığında Silme_Click yordamı altındaki program satırları işletilerek silme işlemi gerçekleştirilir.Şekil 15.27: Silme işlemine ait program
satırları
15.5. Menü Hazırlamak
Visual Basic'te menü hazırlamak oldukça kolaydır. Bu kısımda daha önce hazırladığımız kayıt girişi, kayıt okuma, kayıt düzeltme ve kayıt silme işlemlerini içeren bir menü hazırlayacağız
. İlk olarak Şekil 15.28'deki gibi bir form hazırlayacağız ve formu Anaform.FrmŞekil 15.28
Hazırladığımız projeyi ise hard diske Menü.Vbp adıyla kaydedelim ve bu projeye Giris.Frm, Okuma.Frm, Düzeltme.Frm ve Silme.Frm adlı daha önceden hazırlamış olduğumuz form dosyalarını ve kayıt tipi değişken tanımlama satırlarını içeren Giris.Bas adlı modül dosyalarını projeye, Project menüsündeki Add File seçeneği ile dahil edelim.Üzerinde çalıştığımız projeye Frm ve Bas uzantılı dosyaları eklemek için
Project menüsünden Add File seçeneğini seçecek olursak ekrana Şekil 15.29'daki Add File diyalog kutusu gelir.
Şekil 15.29:
Add File diyalog kutusu
Şekil 15.30:
Project penceresiKayıt girişi yapmak amacıyla kullanılacak düğmeye Kayıtgir, Kayıt okumak amacıyla forma eklenen düğmeye Kayıtoku ve kayıt düzeltmek için forma eklenen düğmeye ise Kayıtduz adını verdik. Proje çalıştırıldığında kullanıcı formdaki Kayıt girişi başlıklı düğmeye tıklarsa proje içindeki adı GIRIS olan form aktif olacaktır. Bunun için Anamenü adlı formun kod sayfasın
a geçilerek Şekil 15.31'deki program satırları yazılmalıdır.Şekil 15.31: Kayıt girişi düğmesine ait kod
penceresi