Bedava Ödev İndir > Akademik-Üniversite Kaynaklar > Bilgisayar Kaynaklar > V BASİC VE DEMİRBAŞ TAKİP PROGRAMI
Sayfa: 1
  Yazdır  
Gönderen Konu: V BASİC VE DEMİRBAŞ TAKİP PROGRAMI  (Okunma Sayısı 125 defa)
Mayıs 14, 2008, 17:35:01 ÖS
Abruzzi
Çalışkan öğrenci
****

Rep +4/-0
Mesaj Sayısı: 1031



Üyelik Bilgileri
« : Mayıs 14, 2008, 17:35:01 ÖS »




ÖNSÖZ
Günümüz teknolojisinde çok büyük gelişmeler olmaktadır. Bilgisayarın her alanında olduğu gibi yazılım alanında da bu gelişmeler olmaktadır. Dünyanın gerisinde kalmamak ve günün gerçeklerine paralel olarak ilerlemek için gelişmeleri takip etmemiz gereklidir.
Şimdiye kadar hep text ekranlarda uğraşıp duruyordum. Daha önce hiç görsel bir programlama diliyle çalışmadığımdan Visual Basic dili çok dikkatimi çekti. Gerekli  kaynakları temin edip çalışmaya başladığımda çok sürükleyici bir serüvene girmiş oldum.  OOP (Object Oriented Programming Language) bir dil olan Visual Basic dili ile pascal, c gibi programlama dillerine göre daha kolay proje geliştirilebilir ve güncelleşebilir bir yapıya sahiptir.
Kullanımı kolay ergonomik bir ara yüze sahip olan DemirBaş Takibi programı ile orta büyüklükteki firmalar, ticari iş yerleri ve devlet kurumlarında çok rahatlıkla malzemelerin takibini yapabilecekleri bir biçimde tasarladım.
Bu program sayesinde iş yerinin personel bilgilerini tutabilir, stokların giriş-çıkış işlemlerini takip edebilir ve stok envanterlerini alabileceğiniz gibi kurumun envanterinde azalan stokları takip edebilirsiniz.
Bu itibarla bilgisayar yazılımı alanındaki gelişmeleri izleyecek olursak   nesneye dayalı programlama dilleri kullanılmaktadır. Nesneye dayalı bir programlama dili öğrenmek için Visual Basic 5.0 ile başlamanın çok yararı olacaktır.
 
İÇİNDEKİLER
ÖNSÖZ   i
İÇİNDEKİLER   ii
EK 1: Şekiller Listesi   v
BÖLÜM 1: VİSUAL BASİC’TE ÇALIŞMAYA BAŞLAMAK   1
1.1. Project Penceresi   2
1.2. Code Penceresi   2
1.3. Properties Penceresi   3
1.4. ToolBox Penceresi   4
1.5. Projeyi Kayıt Etmek   5
1.6. Projeyi Yüklemek   5
BÖLÜM 2: FORMLAR   6
2.1. Standart Formlar   6
2.1.1. Standart Formların Özellikleri   6
2.1.2. Formlara Uygulanan Olaylar (Events)   7
2.2. MDI Formlar   9
2.2.1. MDIFormların Özellikleri   9
BÖLÜM 3: ÖZEL KONTROLLER (NESNELER)   10
3.1. Kontrollerin Ortak Özellikleri   11
3.2. Kontrollere Uygulanan Ortak Olaylar (Events)   12
3.3. Label Kontrolü   12
3.3.1. Label Kontrolünün Özellikleri   12
3.4. TextBox Kontrolü   12
3.4.1. TextBox Kontrolünün Özellikleri   13
3.5. Command Buton Kontrolü   13
3.5.1. Command Kontrolünün Özellikleri   13
3.6. ComboBox Kontrolü   14
3.6.1. ComboBox Kontrolünün Özellikleri   14
3.7. DBCombo Kontrolü   14
3.7.1. DBCombo Kontrolünün Özellikleri   15
3.8. MSFlexGrid Kontrolü   15
3.8.1. MSFlexGrid Kontrolünün Özellikleri   15
3.8.2. MSFlexGrid Kontrolü Metodları   16
3.9. Data Kontrolü   16
3.9.1. Data Kontrolünün Özellikleri   17
3.9.2. Data Kontrolünde Meydana Gelen  Olaylar   17
3.9.3. Data Kontrolü Metodları   18
BÖLÜM 4 : VERİ TABANI (DATABASE)   19
4.1. Avantaj Ve Dezavantajları   19
4.2. Veritabanı Dosyasının Bölümleri   19
BÖLÜM 5: DEMİRBAŞ TAKİBİ PROGRAMINA GİRİŞ   21
5.1. Veri Tabanı Yapısı   21
5.2. Projenin Formlarının Hazırlanması   22
BÖLÜM 6: PROJE BULUNAN MENÜLERİ   24
6.1. Dosya Menüsü   24
6.1.1. Yeni Stok Kartı   25
6.1.2. Eski Stok Kartı   25
6.1.3. Yeni Personel Kartı   26
6.1.4. Eski Personel Kartı   27
6.1.5. Çıkış   27
6.2. Hareketler Menüsü   27
6.2.1. Giriş/Çıkış işlemleri   27
6.2.2. Eski Hareket   28
6.3. Rapor Menüsü   28
6.3.1. Stok Envanter   28
6.3.2. Kritik Envanter Listesi   28
6.3.3. Personel Listesi   28
6.4. Pencere Menüsü   29
6.5. Yardım Menüsü   29
6.5.1. Demirbaş Takibi Yardım   29
6.5.2. Hakkında   29
BÖLÜM 7: PROJE CODE’LARI   30
7.1. AnaMenü (AnaMenü.frm)   30
7.2. StKartıYeni (StKartıYeni.frm)   32
7.3. StKartıEski (StKartıEski.frm)   35
7.4. PerKartıYeni (PerKartıYeni.frm)   43
7.5. PerKartıEski (PerKartıEski.frm)   46
7.6. Hareket (Hareket.frm)   54
7.7. HareketEski (HareketEski.frm)   57
7.8. Module1 (Module1.bas)   59
KAYNAKLAR   60

 
EK 1-
EK 1: Şekiller Listesi
Şekil 1: Visual Basic 5.0’ın görünümü   1
Şekil 2:  Visual Basic 5.0’ın Ana Formu   2
Şekil 3: Project penceresi   2
Şekil 4: Code yazım penceresi  görünümü   3
Şekil 5: Properties penceresi   3
Şekil 6: ToolBox penceresi   4
Şekil 7: Code penceresi içinde Events seçenekleri   8
Şekil 8: Veri tabanı dosya yapısı   20
Şekil 9: Demirbaş projesi veri tabanı dosya yapısı   21
Şekil 10: Demirbaş veri tabanı tabloları ve bağlantı şeması   22
Şekil 11: Demirbaş takibi projesi module ve formları   22
Şekil 12: AnaMenü (AnaForm) görünümü   23
Şekil 13: Yeni stok kartı ekleme formu   24
Şekil 14: Eski stok kartı formu   25
Şekil 15: Yeni personel kartı formu   26
Şekil 16: Eski personel kartı formu   26
Şekil 17: Hareket işlemi formu   27
Şekil 18:  Eski hareket formu   28

 
BÖLÜM 1: VİSUAL BASİC’TE ÇALIŞMAYA BAŞLAMAK
VB ilk çalıştırıldığı zaman karşımıza New Project penceresi gelir burada bizden bir form seçmemizi ister. Biz Standart EXE seçeneğini seçim Aç düğmesini seçtiğimizde karşımıza aşağıdaki pencere gelir.
Şekil 1: Visual Basic 5.0’ın görünümü
VB’ de yapılan programlara proje adı verilir. Yukarıda da görüldüğü gibi VB projeye hemen bir form eklemiş durumda. VB’ de programları ekranda görüntülemek için formlardan yararlanılır. Windows’taki pencere kavramı VB’ de form kavramı ile adlandırılır. Bu nedenle bir projede en az bir form bulunmak zorundadır. Ancak VB programcıya projede birden fazla form kullanma izni de vermektedir. VB’ de formlar çok önemli olduğu için daha ileride ayrıntılı bilgi vereceğim.
Şimdi VB’nin ekranda görünen  kısımlarını açıklayalım. Bazı kaynaklarda Ana form olarak da adlandırılan bölümün şekli aşağıdaki gibidir. En üst satırı bütün Windows uyumlu programlarda da bulunan pencere başlığı bulunmaktadır. Pencere başlığının hemen altında VB’ ye ait menü çubuğu bulunmaktadır. Menü çubuğu altında ise o an aktif durumda bulunan araç çubukları bulunmaktadır. Aşağıdaki görüntüde sadece standart araç çubuğu aktif durumdaydı. Diğer araç çubuklarını da aktif yapmak için  View menüsündeki Toolbars komutundan yararlanabilirsiniz.

Şekil 2:  Visual Basic 5.0’ın Ana Formu
1.1. Project Penceresi
Proje hakkında bilgi edinmek istiyorsanız View menüsündeki Project Explorer komutu ile ekrana getirilecek project menüsünden yararlanmanız gerekir. Bu pencere Visual Basic penceresi içerisinde herhangi bir yere taşınabilir. Tools-options menüsündeki docking sekmesinden project explorer check butonu seçilerek Visual Basic’ten bağımsız bir pencere olarak ayarlanabilir.
Şekil 3: Project penceresi
Yukarıdaki ilk şekilde projeye yalnızca  bir tek form eklenmişti. Sağdaki şekilde ise projeye iki form eklenmiş durumdadır. Ekranda görmek istediğimiz formu project penceresindeki formun isminin üzerinde iki defa tıklamak yeterlidir.
Project penceresinin başlık çubuğu altında bulunan üç düğmeden ilki view code düğmesidir. Projenin formuna program kodu yazmayı sağlayacak code penceresini ekrana getirir. İkinci düğme view object düğmesidir ki bu da seçili olan formu ekrana getirir.  Üçüncü düğme ise Toggle Folders projeye eklenmiş olan form ve module isimleri project penceresinde listelenirken forms ve modules olarak ayırır veya tümünü tek başlıkta toplar.
1.2. Code Penceresi
VB proje tasarımında bir çok nesneyi (kontrol) bünyesinde bulundurur. Bu nesnelerin yetersiz kaldığı yerde veya nesnelerin özelliklerini çalışma anında değiştirmek için bazı program kodu yazmak gereklidir. Bu program  kodunu yazmak için Code penceresinden yaralanılır


Şekil 4: Code yazım penceresi  görünümü
Code penceresinde, başlık çubuğu altında iki combo buton  ve altında code yazılacak bir bölümden oluşur. Burada önemli olan combo butonlardır. İlk combo buton Object (nesne) adı verilir ve kodun yazılacağı nenenin veya formun isminin seçilmesini sağlar.  ikinci combo buton Events (olay) ise nesnede meydana gelen olayları içerir. Programın çalışma modunda iken meydana gelen olayda ne yapacağını buradan uygun olaya gerekli kodu yazarak düzenleyebilir.
1.3. Properties Penceresi
Şekil 5: Properties penceresi
VB’ deki önemli diğer bir pencere ise properties penceresidir. Properties penceresi yardımıyla formların ve daha ilerde göreceğimiz nesnelerin (kontrollerin) özelliklerini projeye uygun bir biçimde düzenleyebiliriz.
Her nesnenin kendine özgü özellikleri vardır. Dolayısıyla seçilmiş olan nesne veya formun özelliği properties penceresinde farklılık gösterir. Properties penceresindeki başlık çubuğu altındaki combo buton sayesinde istenen form veya  nesnenin özellikleri görüntülenebilir ve üzerinde değişiklik yapılabilir. Daha ilerde formun ve çok kullanılan  nesnelerin özellikleri hakkında bilgi vereceğiz.
1.4. ToolBox Penceresi
Şekil 6: ToolBox penceresi
Toolbox penceresi VB’nin en önemli penceresidir. Projeye (form üzerine) dahil edilecek nesnelerin sembollerinin bulunduğu penceredir. Her sembol bir nesneyi temsil etmektedir.
Projeye dahil edilecek olan nesne önce ToolBox penceresinden seçilir ve daha sonra formda istenen konuma yerleştirilir. Daha sonra eklenen nesnenin istenen  özelliği properties penceresi yardımıyla değiştirilebilir.
Visual Basic çalışma ortamında iki durum vardır. Projeye ilk başlandığı an Design (tasarım) anıdır. Tasarım anında iken projeye istenen nesne eklenebilir veya nesnenin, properties penceresi yardımıyla özellikleri değiştirilebilir. İkinci durum ise Run (çalışma) modudur.   Bu modda iken projeye hiçbir nesne eklenemez ancak nesnelerin özellikleri kod yazımı ile değiştirilebilir. Proje üzerinde işlem yaptığımız sırada projenin bulunduğu mod başlık çubuğunda köşeli parantez içerisinde gösterilir. Örneğin tasarım anında iken Microsoft Visual Basic [DESIGN] bilgisi başlık çubuğunda bulunur.
Tasarım[Design] modundan çalışma[Run] moduna geçmek demek programı çalıştırmak  demektir. Bunun için Run menüsünden Start komutu verilebilir ayrıca F5 kısayol tuşu yardımıyla da  proje çalıştırılabilir.
Çalışma modundan tekrar tasarım moduna geçmek için Run  menüsündeki End komutu kullanılır veya çalışmış olan projenin formu (pencere) üzerinde bulunan kapat düğmesi kullanılabilir.
1.5. Projeyi Kayıt Etmek
Projeyi ilk kaydederken file menüsünden Save Project komutunu verdiğimizde önce projede bulunan formların isimlerini teker teker kaydedip daha sonra projeye dahil olan formların isimlerini tutacak olan project dosyası (proje ismi) kaydedilir. Bu formlara ve proje ismine istediğimiz ismi verebiliriz.
1.6. Projeyi Yüklemek
Daha önceden hazırlamış olduğumuz bir projeyi yüklemek için file menüsündeki open project komutu verildiğinde iki sekmeli bir pencere açılır. İlk sekmede(existing) bilgisayarda kayıtlı olan klasör yapılarından projemizi bulma imkanı verir. İkinci sekmede(recent) ise daha önceden üzerinde çalıştığımız projelerin isimlerinden istediğimizi seçebiliriz.
 
BÖLÜM 2: FORMLAR
Windows ve Windows uyumlu programlardaki pencere kavramı VB projelerindeki karşılığı Formdur. VB’ de sık kullanılan iki türlü form bulunmaktadır. İlki standart Formlar ikincisi ise MDIForm’lardır. Birde VB’nin tasarlamış olduğu özel formlar vardır. Örneğin birçok programda bulunan Hakkında (About) adındaki pencere VB’ de hazır bir form olarak verilmektedir.
2.1. Standart Formlar
Diğer dillerde (pascal, c, basic gibi) ekran görüntüsü çalışma esnasında oluşturulurdu. Visual Basic’te ise bu işlem tasarım esnasında yapılır. Böylece programınızda ekran düzenleyici kodların yazılması olayı ortadan kalkmış olur. Daha önce de belirttiğim gibi bir projeye birden fazla form ekleyebiliriz.
2.1.1. Standart Formların Özellikleri
VB’nin tasarım anında properties penceresinde bulunan özelliklerini projeye uygun olarak ayarlayabileceğimiz gibi çalışma anında da kod yazımıyla değiştirebiliriz. VB properties penceresindeki özelliklere defaul değerler vermektedir. Biz istediğimizi projeye uygun olacak biçimde değiştirebiliriz. Şimdi properties penceresinde bulunan bazı önemli özellikleri kısaca göz atalım.
Name: Formun  program içerisindeki ismidir. Kod yazımında bu isim kullanılır. VB ilk eklenen forma Form1 ikinci forma Form2... ismini vermektedir.
Caption: Formun başlığının tutulduğu özelliktir. VB Name gibi default olarak ilk eklenen forma Form1 ikinci forma Form2... ismini vermektedir.
Backcolor: Formun zemin renginin tutulduğu özelliğidir.
ControlBox: Form başlık çubuğunda bulunan kontrol menüsünü ve kapat,önceki konum ve simge durumuna küçült düğmelerinin görünür/görünmez özelliği ayarlanır. True/False değerlerinden yalnızca  birini alabilir.
Borderstyle:
Enable: Formun kullanılabilir veya kullanılamaz olmasını sağlar. True/False değerlerinden birini alabilir.
Font: Form üzerine yazılacak yazının yazıtipi,yazıtipi biçemi ve boyutunun belirlenmesini sağlar. Bu özellik nesneleri  etkilemez sadece forma print komutuyla mesaj yazdırırken kullanılır.
Icon: Forma icon vermeyi sağlar. Bu icon başlık çubuğunda görünür ayrıca kısayol oluşturulduğunda da kullanılır.
Maxbutton: Maksimum yapma butonunu aktif/pasif duruma getirmeyi sağlar.
Minbutton: Minimum yapma butonunu aktif/pasif duruma getirmeyi sağlar.
Picture: Form zeminine bir resim eklenecekse bu dosyanın bilgilerinin tutulduğu özelliktir. BMP, JPEG, WMF dosyalarından birini seçebiliriz.
Visible: Formun görünür/görünmez özelliğini tutar. Enable özelliğine benzerdir ancak Enable özelliğiyle formu kullanılmaz duruma getirebiliyoruz Visible özelliği ile hem görünmez hemde kullanılmaz duruma getirebiliriz.
WindowState: Run moduna geçildiğinde formun durumunu tutar. Normal,simge durumunda ve maksimum durumlarından biri verilebilir.
MDIChild: Bu formun MDIChild form olduğunu gösterir. True/False değerlerini alabilir. MDIFormlarda daha ayrıntılı olarak  açıklayacağız.
Code yazımıyla özellikler değiştirilecek ise önce;
Formadı.Özellik = Alabildiği değer
Şeklide yazılmaktadır. Aşağıdaki kod ile Form1 adlı formun başlığını değiştirebiliriz.
Form1.Caption =” DemirBaş Takibi Programı”
2.1.2. Formlara Uygulanan Olaylar (Events)
Aşağıdaki görüntüde Formun code penceresi açılmış durumda ve ikinci combo butona basılmış durumdadır. Buradan forma uygulanabilen bütün olaylar bulunmaktadır. Biz program kodu yazımında uygun olan olaya gerekli kodlar yazılmalıdır. Yazılacak kodlar
 Private  sub olay_adı()
...............
End Sub
arasına yazılmalıdır. Şimdi olaylardan önemli olanlara kısaca göz atalım. Formlar uygulanan birçok olay diğer nesnelere de uygulandığından bu konuyu iyi anlayanlar ilerideki konuları daha rahat kavrayacaklardır.
Load:  Formun ilk açıldığında bu olay meydana gelir. Formun ilk açıldığında yapmasını istediğimiz kodları buraya yazmamız gerekmektedir.
Click: Form üzerinde mouse ile tıklama yapıldığı zaman meydana gelen olaydır.

Şekil 7: Code penceresi içinde Events seçenekleri
Dblclick: Form üzerinde mouse ile iki defa tıklandığı zaman meydana gelen olaydır.
Activate: Form aktif olduğunda meydana gelir. Load’dan farkı load sadece form açıldığında meydana gelir form kapatılıp yeniden açılmadıkça bir daha meydana gelmez. Activate olayı ise başka forma geçim tekrar forma her dönüşte meydana gelir.
unload: Formun kapatıldığı zaman meydana gelir.
KeyPress:  Form aktif durumdayken klavyeden her tuşa basıldığında meydana gelen olaydır.
KeyDown: KeyPress gibi çalışır ancak tuşa basıldığı zaman meydana gelir
KeyUp: Bu ise tuştan elinizi kaldırdığınız zaman meydana gelen olaydır. Yani KeyPreess olayı KeyDown ile KeyUp olaylarının toplamıdır.
MouseDown: Form üzerindeyken mouse’un tuşuna basıldığı zaman meydana gelir.
MouseMove: Mouse’un Form üzerinde hareket ettirilmesinde meydana gelir. 
Örnek: Projeye iki form ekleyelim Form1 ilk çalışacak ve Form1 üzerinde mouse ile tıklandığı zaman Form2 aktif olacağı kodu yazalım.
Private Sub Form_Click()
Form2.Show
End Sub
Form1’de tıklandığı zaman click olayı meydana geldiğinden yazılacak kod Form1’in click yordamına yazılır. Form2.Show komutuyla Form2 belleğe yüklenir ve aktif duruma geçer.
2.2. MDI Formlar
Microsoft Word ve benzeri programlarda bir ana pencere ve onun altında istenen kadar pencere açılmaktadır. Aynı anda iki form aktif durumdadır. Şimdiye kadar kullandığımız standart formlarda ise yalnızca bir form aktif durumdaydı. VB’ de aynı anda iki formun aktif durumda olmasına izin vermektedir. Bu olay için Bir MDIForm ve onun altında istendiği kadar standart form açma izni vermektedir. MdıForm sürekli aktif durumda ve bunun yanında istenen bir standart formda aktif yapılabilmektedir.
Bir projeye sadece bir MDIForm eklenebildiğinden MDIForm’un ana form olarak tasarlanması uygun olur. Buna karşılık istendiği kadar standart form eklenebilmektedir.
MDIForm‘lar ile standart formları bağlamak için standart formların MDIChild özelliği True yapılası gerekmektedir. MDIChild özelliği true yapıldığında project penceresinde standart formun sembolünün değiştiği görülür.
2.2.1. MDIFormların Özellikleri
Name, BackColor, Enable, Caption, Picture, Visible, WindowState özellikleri tamamen standart formlardakilerle aynıdır.
Standart formlarda bulunan Font, ControlBox gibi bazı özellikler MDIFormlarda kullanılamadığından bulunmaz. MDIForma yazı yazılamadığından Font özelliğine gerek yoktur.
Standart Formlarda bulunmayan ScrollBars özelliği projeye dahil edilen MdıChild (standart formlar) formların boyutları çalışma alanına sığmadığı anda MDIForma otomatik olarak düşey kaydırma çubuğu eklenir. ScrollBars özelliğine False  değeri verilirse kaydırma çubuğu eklenmez.
 
BÖLÜM 3: ÖZEL KONTROLLER (NESNELER)
VB projelerinin en önemli bileşenleri Formlar ve Form üzerine yerleştirilen kontrollerdir. Formlar üzerine yerleştirilen metinler, düğmeler, resim kutuları  vs her biri bir kontroldür ve formlarda olduğu gibi kendilerine özgü özellikleri vardır . Bir diğer önemli husus ise Formlardaki gibi bunlara uygulanan olaylar (event) vardır.
Formlara yerleştirilebilen her kontrol ToolBox penceresinde bir düğme ile temsil edilmektedir. Projenin formuna kontrol eklemek için tasarım modunda bulunmak gerekmektedir.
VB sık kullanılan kontrolleri projeye başlandığında kendiliğinden ekler. Daha sonra gerekli olan kontrolü eklemek için, Project menüsünde bulunan Components komutunu vererek karşımıza gelen kontrollerden gerekli olanı seçebiliriz. Aynı biçime ToolBox penceresine eklenmiş olan bir kontrolü Project-Componenets’den karşımıza gelen pencereden seçili olan kontrolü iptal ederek çıkarabiliriz. Yalnız projeye eklenmiş olan bir kontrol ToolBox penceresinden de çıkarılamaz. Projeye her eklenen OCX uzantılı dosya proje kapasitesini artırır ve performansı düşürür. Bu nedenle kullanılmayan kontroller eklenmemelidir.
Kontroller C:\Windows\System klasörü altında OCX uzantısı ile bulunurlar. VB profesyonel sürümlü kitaptan  bulabileceğiniz gibi kendinizde bu OCX uzantılı kontrollerden oluşturabilirsiniz.
Tasarım anında forma bir kontrol eklemek için mouse yardımıyla ToolBox penceresinden düğme seçilir ve form üzerinde gerekli yere yerleştirilir. Forma yerleştirilen kontroller daha sonra form üzerinde istenen konuma taşınabilir veya boyutları değiştirilebilir.
Formların ve  kontrollerin özelliklerini tasarım [Design] anında properties penceresinden çalışma [Run] anında ise code yazılarak değiştirebiliriz. Yalnız Name gibi bazı özellikler sadece tasarım [Design] anında değiştirilebilir. Code yazımında aşağıdaki komut dizimi kullanılmak zorundadır.
Kontrol_adı.kontrol_özelliği = alabileceği_değer
Label.caption=”Adınızı Giriniz”
Şimdi yapacağımız Demirbaş Takibi projesinde kullanılan kontrollerin özelliklerini ve bunlara uygulanan olayları kısaca inceleyelim.
3.1. Kontrollerin Ortak Özellikleri
Aşağıdaki özellikler hemen hemen bütün kontroller için geçerlidir ve çok önemli özelliklerdir. Bir çok kontrolde kullanıldığı için iyi bir şekilde öğrenilmelidir.
Name: Kontrolün ismini belirler code yazımında bu isim ile kontrole ulaşılabilir.
Backcolor: Kontrolün zemin renginin tutulduğu özelliğidir.
BorderStyle: Kontrollerin üç boyutlu olma veya olmama özelliği belirlenir.
Enable: Kontrolün kullanılabilir veya kullanılamaz olmasını sağlar. True/False değerlerinden birini alabilir.
Font: Formlarda olduğu gibi label içindeki sabit bilginin yazılacak yazının yazıtipi, yazıtipi biçemi ve boyutunun belirlenmesini sağlar.
Height: Kontrolün Form üzerindeki yüksekliği bu özellikte tutulur.
Visible: Kontrolün görünür/görünmez özelliğini tutar. Enable özelliğine benzerdir ancak Enable özelliğiyle formu kullanılmaz duruma getirebiliyoruz Visible özelliği ile hem görünmez hem de kullanılmaz duruma getirebiliriz.
Left: Kontrolün, formun sol kenarından uzaklığını tutar. Uzaklık Twip birimi olarak belirlenmektedir. Yani sütunun başlangıç sütun numarasını tutar.
Top: Kontrolün formun üst kenarından uzaklığını tutar. Uzaklık Twip birimi olarak belirlenmektedir. Pascal, c gibi dillerde tek komutla satır ve sütun verilerek kursör konumu verilebiliyordu. Burada ise left sütun top ise satır numarasını belirler. İki özellikle kontrollerin form üzerindeki konumları ayarlanabilir. 
TabStop:  Kontroller arasında dolaşırken tab tuşundan yararlanılabilir. TabStop özelliği False yapılan kontrolün üzerine tab tuşu ile gidilmez o nesneyi görmez. Defaul olarak True  değeri atanmıştır.
ToolTipText: Kontrolün üzerine gelindiğinde dikdörtgen bir pencerede ekrana o kontrolle ilgili mesaj verir.
TabIndex: Kontrollerin form üzerine yerleştirirken yerleştirilme sırası burada tutulur. Tab tuşu ile bunlar üzerinde dolaşırken TabIndex içindeki sıraya göre ilerler. Forma ilk eklenen kontrolün TabIndex değeri 0 daha sonrakilerin değerleri 1,2,3... diye devam eder.
Width: Kontrolün genişlik bilgisi burada tutulur.
3.2. Kontrollere Uygulanan Ortak Olaylar (Events)
Click: Kontrol üzerinde mouse ile tıklama yapıldığı zaman meydana gelen olaydır.
Dblclick: Kontrol üzerinde mouse ile iki defa tıklandığında meydana gelen olaydır.
MouseDown: Kontrol üzerinde mouse’un tuşuna basıldığı zaman meydana gelir.
MouseMove: Mouse’un Form üzerinde hareket ettirilmesinde meydana gelir. 
KeyPress:  Kontrol aktif durumdayken klavyeden her tuşa basıldığında meydana gelen olaydır. Her kontrolde bulunan bir özellik değildir.
KeyDown: KeyPress gibi çalışır ancak tuşa basıldığı zaman meydana gelir
KeyUp: Bu ise tuştan elinizi kaldırdığınız zaman meydana gelen olaydır. Yani KeyPreess olayı KeyDown ile KeyUp olaylarının toplamıdır.
3.3. Label Kontrolü
ToolBox penceresinde büyük A harfli düğme ile temsil edilir. Projede formun üzerine sabit bir bilgi yazmak için kullanılır.  Tasarım anında forma bir label kontrolü eklemek için mouse yardımıyla ToolBox penceresinden düğme seçilir ve form üzerinde gerekli yere yerleştirilir.
3.3.1. Label Kontrolünün Özellikleri
Alignment: Label kontrolü içindeki sabit bilgini nereye dayalı olarak görüneceğini ayarlar. Soldan, sağdan veya ortadan hizalı olarak yazılabilir
Caption: Label kontrolünün içinde yer alacak sabit bilgi burada tutulur. VB forma eklenen ilk labelin Name ve Caption özelliklerine Label1 ikincisine Label2 değerlerini atar.
AutoSize: Label kontrolünün boyutları mouse ile değiştirilebildiği gibi AutoSize özelliği True değeri verilerek içine yazılan bilginin boyutuna göre otomatik olarak boyutlandırılabilir.
WordWrap: Tek satıra sığmayan bilgiyi satırlara bölme özelliğini verir. True/False değerlerinden birini alabilir.
3.4. TextBox Kontrolü
ToolBox penceresindeki sembolü soldaki gibidir. Pascaldaki  Read komutu gibi klavye aracılığıyla dışarıdan bilgisayar ortamına değer (veri) girmeyi sağlayan bir kontroldür.
3.4.1. TextBox Kontrolünün Özellikleri
Text: TextBox içine yazılan verinin saklandığı özelliktir.
MaxLength: TextBox kontrolüne girilecek bilginin karakter sayısını sınırlar.
MultiLine: TextBox’a girilen bilgileri satırlara böler. True/False değerlerini alabilir.
PasswordChar: Şifre karakteridir buraya girilen karakter TextBox’a bilgi girerken  klavyeden her karaktere basıldığında basılan karakter değil passwordChar içindeki  karakter TextBox’ta görünür.
ScrollBars: Kaydırma çubuğu ekler. Yatay, dikey, ve hem yatay hem dikey çubuk eklenebilir. Fazla satır kullanımında veya uzayıp giden satırlarda kullanılabilir.
DataSource: Data kontrolü ile TextBox  arasındaki bağlantıyı sağlar. Veri tabanı dosyalarında kullanılır.
DataField: DataSource  ile bağlantı kurulan veri tabanı dosyasındaki Field ile eşleştirilir. Daha ayrıntılı olarak veri tabanı dosyaları kullanımında göreceğiz.
3.5. Command Buton Kontrolü
 ToolBox penceresindeki sembolü soldaki gibidir. Düğmelere bütün Windows uyumlu programlarda rastlamak mümkündür. Seçimlik işlemler olduğunda seçilen  işlemi belirlemede kullanılır. Örneğin kayıt yapılacaksa bir düğme eklenir ve bunda gerekli kodlar yazıldığında bu düğmede tıklama yapıldığında gerekli işlemler yapılır.
3.5.1. Command Kontrolünün Özellikleri
Caption: Command buton üzerinde yazılacak mesajı içerir. Alt tuşuyla bir harfe basıldığında bu butonun gerekli kodların çalışması için Caption’da harfin önüne & karakteri konulmalıdır. Ayrıca o harfin altı VB tarafından çizilir. Örneğin Alt+k için &kayıt yazılmalıdır.
Cancel: İptal, Çık, Vazgeç gibi düğmelerin ESC tuşu ile de kontrol edilmesi  istenir. Bunun için o butonun Cancel özelliği True yapılmalıdır. ESC tuşuna basılmasıyla butona basmak aynı işi yapar.
Picture: Buton üzerine resim yerleştirilmesinde kullanılır. Resim yerleştirebilmek için Style özelliği Graphical olarak atanması gerekir.
DownPicture: Butona basıldığı zaman başka bir resmin görüntülenmek isteniyorsa resim dosyası bu özellikte saklanır.
3.6. ComboBox Kontrolü
 ToolBox penceresindeki sembolü soldaki gibidir. Girilecek verinin (bilgi) bilindiği durumlarda yeniden yazmak yerine alabileceği değerlerden birini seçmek için kullanılır. Daha önceden bu verilerin girilmiş olması gereklidir. İl isimleri, Giriş/çıkış gibi seçimlerde kullanılabilir.
3.6.1. ComboBox Kontrolünün Özellikleri
Text: Seçilmiş olan bilginin içeriğini tutar. Bütün verileri değil sadece seçili olan veriyi tutar. Dosyalama işlemlerinde kayıt yapılırken text özelliği kayıt edilir.
ListIndex: Text ile seçilen bilgi öğrenilebilir. ListIndex ile seçilen bilginin listedeki numarası öğrenilir veya istenen numaradaki bigi aktif edilir.
List: Seçimlik olan bütün veriler burada tutulur. Örneğin il seçimi yapılacak ise bütün il isimleri burada yazılı olmalıdır.
AddItem: Code yazılarak listeye yeni seçenek eklemede kullanılır. Örneğin ile yeni  bir il eklenecekse bu komut kullanılmalıdır. Yalnız bu profesyonel programlar için doğru bir yol değildir. İl isimlerini bir dosyadan okumak daha ergonomik bir program ortaya çıkarır.
Combo1.AddItem “Sakarya”
Yukarıdaki komut satırıyla combo1 kontrolüne Sakarya seçeneği eklenmiştir.
Style: ComboBox’un tipini belirleyen özelliktir. Kullanıcı başlangıçta seçimler dışında da bir bilgi girebilir. Style özelliği değiştirilerek kullanıcının dışarıdan bilgi girmesini engelleyen özelliktir.
3.7. DBCombo Kontrolü
ComboBox kontrolüne benzer amaçta kullanılır. Girilecek verinin (bilgi) bilindiği durumlarda bunlardan birini seçmek için kullanılır. ComboBox’ta bilgilerin girilmesi gerekirdi bundada benzer mantıkla veri tabanı dosyasındaki verilerin dosyadan direkt alınım seçim yapılması için kullanılır. Çok kullanışlı bir kontroldür. Veri tabanı dosyasında kayıtlı veriler dışında seçim yapılması istenmeyen durumlarda kullanılır. Örneğin il isimlerinin kayıtlı olduğu bir veri tabanı dosyasından alınacak il isimleri DbCombo ile seçebiliriz. Bu kontrolün kullanılabilmesi için forma bir data kontrolü eklenmesi gerekmektedir.

3.7.1. DBCombo Kontrolünün Özellikleri
RowSource:  Data kontrolü ile DbCombo kontrolü arasında bağlantı yapılmış olur. Dolayısıyla veri tabanındaki table ile bağlantı yapılmış olur.
ListField: RowSource ile seçilen tablonun hangi alanından veri alınacağı belirlenir. Yani Field seçimi yapılır.
BoundColumn: RowSource ile seçilen tablonun hangi alanından veri alınacağı belirlenir. Yani Field seçimi yapılır.   
Text: Listeden seçilen veri DbCombo’nun text özelliğinde tutulur.
DataSource,DataField: RowSource ve ListField ile aynı işlemleri yaparlar.  Ancak yinede RowSource ve ListField  iki özelliğinde seçilmesi gereklidir.
3.8. MSFlexGrid Kontrolü
Hücrelerden meydana gelen Excel’deki sayfalara benzer bir kontroldür. ToolBox penceresindeki sembolü soldaki gibidir. Ancak ToolBox penceresinde ilk başlangıçta görünmez. Projeye bu kontrolü eklemek için project- components menüsündeki verilerek “Microsoft FlexGrid Control seçmeniz” gerekmektedir. Eğer bu seçenek yoksa MSFLXGRD.OCX dosyasının eklenmesi gerekir. Birde Grid kontrolü vardır. Grid’de olan bütün özellikler MsFlexGrid’de bulunur artı özellikleri de vardır. Bu projede sadece veritabanı dosyasındaki verileri süzdükten sonra görüntüleyeceğiz. Burada gerekli olan özellikleri vereceğiz.
3.8.1. MSFlexGrid Kontrolünün Özellikleri
Cols: Bir hücrede bulunması gereken sütun(kolon) sayısının değeri tutulur.
Rows: Bir hücrede bulunması gereken satır sayısının değeri tutulur.
FixedCols: Tablo üzerinde kullanıcının erişemeyeceği sütunların başlığı olarak kullanılan sütun sayısını belirler.
FixedRows: Tablo üzerinde kullanıcının erişemeyeceği satırların başlığı olarak kullanılan satır sayısını belirler.
Col, Row: Bir ızgarada,üzerinde işlem yapılacak hücre  adreslerini belirler. İlk satır için Row=0, İlk sütun için Col=0’dır. Hücrelere bilgi yazılırken önce  verinin yazılacağı hücrenin adresinin verilmesi gerekir.
Text: Aktif hücrenin içindeki metini tutulduğu özelliktir. Bir hücreye veri yazılırken Col ve Row ile adres aktif hücre yapılır text özelliği ile yazılır.

Örneğin Form yüklendiğinde ilk hücreye “Demirbaş Takibi” yazan kodu yazalım.
Private sub Form_Load
MsFlexGrid1.Row=0
MsFlexGrid1.Col=0
MsFlexGrid1.Text= “Demirbaş Takibi”
End sub
ColWidth: Hücrenin genişlik bilgisinin ayarlanmasını sağlar.
RowHeight: Hücrenin yükseklik bilgisinin ayarlanmasını sağlar.
ColAlignment: Hücre içindeki bilginin görüntülenmesinde hizalanmasının yapılmasını sağlar.
DataSource: Data kontrolü ile bağlantıyı sağlar. Kod yazımıyla süzülmediği taktirde bağlı olduğu datanın içindeki tüm verileri görüntüler. Sınırlama için SQL kodu yazılmalıdır.
3.8.2. MSFlexGrid Kontrolü Metodları
AddItem:  Gride yeni bir satır eklemek için kullanılır. Eklenen satır grid’in sonuna eklenir. Araya eklenmek istenir ise parametre olarak eklenecek yerin satır numarası verilir.
RemoveItem: Grid’te  aradan bir satır silinmek istendiğinde kullanılır. Index numarası verilen satırı siler ve diğer satırları yukarıya doğru çeker.
Clear: Gridin içindeki bütün bilgileri siler ancak satır ve sütunlar yerinde kalır. RemoveItem’de bilgilerle birlikte satırlarda silinir clear’da ise sadece içeriği temizlenir hücreler ekranda kalır.
3.9. Data Kontrolü
ToolBox penceresindeki sembolü soldaki gibidir. Veri tabanı dosyalarıyla bağlantı kurmak için kullanılır. Data kontrolü aracılığıyla veri tabanı üzerinde rahatça  hareket esilebilir. Data kontrolü üzerindeki ok tuşları yardımıyla dosya başı/sonu, ileri/geri doğru kayıt üzerinde gezinebilirsiniz. Kayıt üzerinde değişiklik, silme gibi işlemlerde birkaç satırlık kod yazımıyla kolayca oluşturulabilir. Pascal, c gibi dillerdeki dosya açma komutu yerince kullanılabilir. Bu kontrol  forma eklendiği an veri tabanı dosyası kendiliğinden açılır.

3.9.1. Data Kontrolünün Özellikleri
DatabaseName: Veri tabanı dosyasıyla bağlantının kurulması için veri tabanı dosyasının isminin ve konumunun bilinmesi gerekir. Dosyanın ismi ve konumu bu özellikte saklanır.
RecordSource: DatabaseName ile dosya ismi bağlandıktan sonra dosyanın içindeki table’ın bağlanması gereklidir. Bunun içinde RecordSouce kullanılır. DatabaseName seçildiği zaman içindeki bütün table’lar RecordSource içinde atanır ve bir ComboBox içinde listelenir istenen table seçilebilir.
Caption: Data nesnesi üzerindeki yazılı olan yazıyı içerir. İlk olarak data nesnesinin adı verilir. İlk eklenene Data1 ikinci eklenene Data2...vb
Exclusive: Dosyayı başka kullanıcılara kapatır. Sadece bir kullanıcı programı kullanabilir. True/ False değerlerini  alabilir.
BOFAction: Dosya başına geldiğinde ne yapması gerektiği bilgisini içerir. İki değer alabilir. Move First ilka kayıta  geldiğinde bir şey yapmaz. BOF verildiğinde dosyanın başında bulunan BOF alanına geçer ekrana içi boş bir alan gelir.
EOFAction: Dosya sonu geldiğinde ne yapması gerektiği bilgisini içerir. Üç değer alabilir. Move Last değeri verilirse  son kayıtta kalır, EOF verilirse dosyanın EOF bölümüne geçilir ve bir boş alan ekrana gelir.AddNew verildiğinde ise dosya sonuna boş alan ekler ve yeni kayıt yapmamıza olanak tanır.
ReadOnly: Kullanıcıya sadece dosya üzerinde okuma izni verir değişiklik veya silme işleminin kısıtlanmasını sağlar. True/False değerlerini alabilir.
3.9.2. Data Kontrolünde Meydana Gelen  Olaylar
Reposition: MDB  dosyası Data kontrolü ile  açıldığında okuma/yazma kafası ilk kayıtın üzerine konumlanır. Bu olaya Data kontrolünün Reposition olayıdır. Burada o kayıtın özelliklerini ekrana aktarma kodları yazılabilir.
Validate: Data kontrolü ile ilgili olarak yapılan MoveNext, MoveLast, AddNew, Delete vb. işlemlerden önce validate olayı meydana gelmekte veya bu olayın yordamında yazılmış olan program satırları işletilir. Örneğin dosya üzerinde dolaşırken o an aktif kayıt üzerinde değişiklik yapılıp yapılmadığı burada kontrol edilebilir.


3.9.3. Data Kontrolü Metodları
MoveNext: Tablodaki bir sonraki kayıtın aktif kayıt yapmak üzere kullanılır.
MovePrevious: Tablodaki bir önceki kayıtın aktif kayıt yapmak üzere kullanılır.
MoveLast: Tablodaki son kayıtın aktif kayıt yapmak üzere kullanılır.
MovFirst: Tablodaki ilk  kayıtın aktif kayıt yapmak üzere kullanılır.
AbsolutePosition: Okuma/yazma kafasının üzerinde bulunduğu tablodaki kayıt numarasını verir.
RecordCount: Tablodaki kayıt sayısını öğrenmek için kullanılır.
AddNew: Üzerinde çalışılan veri tabanı dosyasının Data nesnesi ile erişim sağlanan tablosuna yeni bir kayıt eklemek için kullanılır.
CancelUpdate: AddNew ile tablo sonuna eklenen alanı iptal eder.
Edit: Kayıt üzerinde değişiklik yapılıp kayıt edilmek istendiği zaman edit moduna geçmek gereklidir. Kısacası bir kayıt alanı değiştirmeden önce  düzenleme moduna alır.
UpDate: AddNew ve Edit metotlarıyla belirlenen değişiklikleri  Recordset nesnesine kaydeder.
Delete: Aktif kayıdı tablodan siler.
FindFirst: Tablo içerisinden belirlenen şarta uyan ilk kayıdı bulur.
 
BÖLÜM 4 : VERİ TABANI (DATABASE)
VB’ den önceki dillerdeki (basic,c,pascal) dosyalama işlemleri random-sıralı- text  dosyalarla yapılırdı. VB’ de bu dosyalama yapıları bulunmaktadır. Ancak bu dosyalama yöntemleri pratikte pek kullanılmıyor. Veri tabanı dosyası kullanılarak projeler daha kolay geliştirip güncelleşebilir bir yapıya bürünmektedir.
Bir veri tabanı dosyası oluşturmak için Add-ins menüsündeki Visual  Data Manager  seçeneği seçildiğinde veri tabanı oluşturabileceğimiz VisData programı çalışır. VisData programı yardımıyla birçok tabanda dosya oluşturabiliriz.
Veri tabanı dosyalarını VB’de kullanılabilmek için VisData programında File-New menüsü altında açılan menü yardımıyla hangi tabanda oluşturulacağı seçilir. Microsoft Access, Dbase, FoxPro, Paradox, ODBC, Text tabanında veri tabanı dosyası oluşturabiliriz.
Bu projede Microsoft Access tabanlı veri tabanı dosyasını kullanacağız. Bazı avantaj ve dezavantajları bulunmaktadır.
4.1. Avantaj Ve Dezavantajları
Microsoft  ürünleri arasında bağlantı kurulabilir. Örneğin Microsoft Word/Excel ile erişim sağlanıp programda bulunmayan raporlar alınabilir.
Microsoft Access ile dosyaya ulaşılıp verilere ulaşılabilir. Bu aynı zamanda dezavantaj olarak da karşımıza çıkar. Projeye şifre konsa bile Access kullanılarak verilere ulaşılıp üzerinde işlem yapılabilir  bu da istenmeyen bir özelliktir. Ulaşımı engellemek için veri tabanı dosyasına pasword koyabilirsiniz .
4.2. Veritabanı Dosyasının Bölümleri
Şimdi bir Microsoft Access tabanına ait veri tabanı dosyası tasarımı yapmaya başlamadan önce veri tabanının yapısını inceleyelim. Klasik dosyalamalardaki dosya yapılarından çok farklı bir yapıya sahiptir. Klasik dosyalarda bir dosya ve onun içinde  veri alanları bulunurdu. Microsoft Access tabanlı veri tabanında ise bir MDB dosyası ve onun içinde Table ve Query  dosyaları, tableların   içinde  Field yapılarından oluşur.




Şekil 8: Veri tabanı dosya yapısı
DataBase (VeriTabanı): Bir yada daha fazla tablodan oluşan ve aynı zamanda birbiriyle ilişkili olan tablo grubuna denir.
Table (Tablo): Bir grup veri alanını içeren yapıya tablo denir. Tüm personel kimlik bilgilerinin tutulduğu yapıdır. Pascal’da oluşturulan DAT dosya yapısına denktir.
Record (Kayıt): Bir tabloda yer alan  ve bir personele ait bilgilerin tümüne verilen addır. Örneğin personel tablosunda yer alan bir personele ait kod, ad, soyadı, telefon numarası ve adresinden oluşan bilgiler bir kayıt oluşturur.
Field (Veri Alanı): Bir tablodaki her bir kaydı oluşturan en temel yapıya veri alanı denir. Örneğin personel tablosundaki kod, ad ,soyadı gibi kayıt yapısından her birine denir.
Index (Anahtar Kayıt): Her bir kaydı temsil eden ve kayıtların sıralanmasında önemli bir rol oynayan anahtar kayıt alanına denir.
Query (Sorgu): Bir yada birden fazla tablodan belli şartlara bağlı olarak istenilen kayıtları listeleyen temel komutlara denir.
 
BÖLÜM 5: DEMİRBAŞ TAKİBİ PROGRAMINA GİRİŞ
VB projesine başlamadan önce bir araştırma yapılıp veri tabanı dosyasında olması gereken veri alanları, tipleri ve uzunluğu belirlenmelidir. Bu alanlar belirlendikten sonra projeye veri tabanı dosyasını oluşturmakla başlamakta yarar vardır. Çünkü formları tasarlanırken ve dosyalarla bağlantısını sağlanırken hangi tabloda hangi veri alanı (Field) olduğu bilinir ve bu esasa göre form dizaynı yapılır.
5.1. Veri Tabanı Yapısı
Aşağıdaki şemada görüleceği gibi VB Demirbaş Takibi  projesinin kurulum düzeni yer almaktadır. Burada Demirbaş.MDB veritabanı dosyasını stokkartı, personelkartı ve hareket ise tabloları gösterir. Stokkartı altında yer alan kod,adı,birim,miktar ise stokkartına ait Fieldları KodIndexde  koda göre indexsi gösterir. Benzer şekilde personelkartı ve hareket altında da fieldlar ve ındexler bulunmaktadır.
Şekil 9: Demirbaş projesi veri tabanı dosya yapısı
Veritabanı dosyasının yukarıdaki yapısına bakılarak aşağıda görülen tablo içinde yer alacak fieldlar hazırlanır. Aşağıdaki şekilde de görüleceği üzere tablolar arasındaki bağlantıları sağlanacak  değişkenler vardır. VisData programı kullanılarak aşağıdaki tabloları ve fieldları oluşturduktan sonra veri tabanı dosyası hazırlanmıştır. Artık projenin ekranda görülen kısmını oluşturan formları hazırlamaya başlayabiliriz.



Şekil 10: Demirbaş veri tabanı tabloları ve bağlantı şeması
5.2. Projenin Formlarının Hazırlanması
Projeye öncelikle bir MDIForm ekledim. Çünkü projede birden fazla standart form  olacağından bunların bir pencere altında toplanması gerekmektedir. MDIFormların standart formları tek bir pencere altında toplama özelliği olduğunu biliyoruz. Tıpkı Micosoft Word’de olduğu gibi. Diğer formları aktif edebilmek için, projeden çıkmak için MDIForm’a menü eklenmelidir. Projedeki formları incelemeye başlamadan önce project penceresinden projeye eklenmiş olan module ve formları görelim.
Şekil 11: Demirbaş takibi projesi module ve formları
Yukarıdaki şekilde projeye eklenmiş olan bütün module ve formlar görülmektedir. Forms’un altında bulunan sembollerin yanındaki form isimlerine dikkat edilirse yazı ve parantez içinde bir yazı daha var. Sembolün yanındaki yazı formun projenin içinde kullanılan form  NAME özelliğinde tutulan ismidir. Parantez içindeki ise Formun bellekte tutulan ismidir. Formlar bellekte FRM uzantısı ile saklanırlar. Formun proje içindeki ismi ile bellekteki ismi aynı olmak zorunda değildir. Ancak bu iki isimin kullanılırken karıştırılmaması gerekmektedir. Projeye dahil edilen bu formları kullanılma amaçlarını ve form görünümlerini inceleyelim.
Bir çok Microsoft ürününde görebileceğiniz proje belleğe yüklenene kadar karşınızda  boş bir ekran yerine karşınıza bir pencere getirilir. Bu işlemi yapabilmek için; hazırlayacağınız formun tasarımı yapıldıktan sonra properties penceresinden Form1 olan Name özelliğini başla olarak değiştirmeniz ve projenin Module1 kısmına bazı code yazmanız gereklidir.  Ayrıca project-project properties menüsü kullanılarak karşınıza gelen pencerede Startup object ComboBox’ından Sub Main’i seçmeniz gerekmektedir.
Şekil 12: AnaMenü (AnaForm) görünümü
Şekil 12’de görüldüğü gibi projenin AnaFormuna menü yerleştirilmiş durumdadır. Şimdi sırasıyla bu menüleri ve içinde bulunan seçeneklerin ne yaptığını inceleyelim.
 
BÖLÜM 6: PROJE BULUNAN MENÜLERİ
6.1. Dosya Menüsü
Dosya menüsü altında; yeni stok kartı, eski stok kartı, yeni personel kartı, eski personel kartı ve çıkış seçenekleri bulunmaktadır.
Bu seçeneklere geçmeden önce formlar üzerinde bulunan düğmelerin görevlerini öğrenelim.
Tabloda aktif kayıtın bir önceki kayıt olmasını sağlar.
Tablodaki aktif kayıtın bir sonraki kayıt olmasını sağlar. Yani bir sonraki kayıt ekranda görüntülenir.
Yeni kayıt veya değişen kayıtı yapar.
Tablo üzerindeki kayıtlardan istenen bilgiyi arayıp bulur.
Tabloda aktif kayıtı siler.
Yazıcıdan çıktı almayı sağlar.
O anda bulunula alt formu kapatır.
Şekil 13: Yeni stok kartı ekleme formu



6.1.1. Yeni Stok Kartı
Bu seçenekle veri tabanı dosyasına yeni bir stok kartı ekleyebilirsiniz. İstenen verilerin girilmesi sırasında dikkat edilmesi gereken bazı durumlar vardır. Stok kodu girilirken daha önceden kullanılan bir kodun bir daha kullanılmaması gereklidir. Aynı kodu girme durumunda program bunu kabul etmeyip yeni kod isteyecektir benzer durumla miktar girişinde karşılaşılır. Miktar girişinde rakam yerine harf veya operatör girişinde program uyarı verip rakam girmenizi isteyecektir. Bu formun name özelliğini stkartıyeni olarak düzenledim.
Şekil 14: Eski stok kartı formu
6.1.2. Eski Stok Kartı
Daha önceden kayıt edilmiş olan veriler üzerinde hareket edebilir, değiştirebilir, silebilir veya yazıcıdan çıktı alabileceğimiz bir formdan oluşur. Form iki kısımdan oluşur. İlk  kısım stok kartı bilgileri, ikinci kısım ise stokun verildiği personelin ve hareket bilgilerinin  görüntülendiği kısımdır. Silme işleminde dikkatli olunmalıdır. Daha önceden Giriş veya Çıkış işlemi yapılmış ise bu silme işleminden hareketlerde etkilenir.Bu formun name özelliğini  stkartıeski olarak düzenledim.

Şekil 15: Yeni personel kartı formu
6.1.3. Yeni Personel Kartı
Yeni bir personel kayıtı yapmak için hazırlanan formdur. Yeni stok kartı  formu ile aynı mantıkta tasarlanmıştır. Formda istenen bilgiler doldurulup kayıt edilir. Bu formun name özelliğini perkartıyeni olarak düzenledim.
Şekil 16: Eski personel kartı formu
6.1.4. Eski Personel Kartı
Daha önceden kayıtı yapılmış olan personel bilgileri üzerinde dolaşmak, değişiklik yapmak, silmek ve yazılı doküman almak için tasarlanmıştır. Silme işleminde dikkat etmek gerekir. Silinen personel kartından giriş ve çıkış hareketleri etkilenir. Bu formun name özelliği perkartıeski olarak düzenledim.
6.1.5. Çıkış
Demirbaş Takibi programını ve tüm açık olan formları da birlikte kapatır. Programdan çıkmak için aynı zamanda CTRL+X kısayol tuşunu kullanabilirsiniz. Bütün Windows uyumlu programlarda olduğu gibi kapat düğmesiyle veya kontrol menüsündeki kapat seçeneği ile programı kapatabilirsiniz.
6.2. Hareketler Menüsü
İki  seçenekli bir menüden oluşur. Seçenekler Giriş/Çıkış hareketleri ve Eski hareket şeklindedir.
Şekil 17: Hareket işlemi formu
6.2.1. Giriş/Çıkış işlemleri
Yeni bir Giriş veya çıkış işlemi için tasarlanmış formdur. Bu form ile bir personele bir stok çıkış işlemi veya stok envanterine giriş işlemi yapılabilir. Giriş/Çıkış işleminin yapılabilmesi için Personel kartının ve Stok kartının daha önceden tasarlanmış olması gereklidir. Bu formun name özelliği hareket olarak düzenledim.
Şekil 18:  Eski hareket formu
6.2.2. Eski Hareket
Daha önceden yapılmış olan Giriş veya Çıkış işlemleri üzerinde dolaşabilir veya o işlemi silebileceğimiz bir formdan oluşur. Silme işleminde dikkatli olunmalıdır yanlış silinen işlemden dolayı stok envanteri etkilenecektir.
6.3. Rapor Menüsü
İki seçenekli bir menüden oluşur. Seçenekler Stok envanter, ve Personel listesinden oluşur.
6.3.1. Stok Envanter
Firmanın stok envanter listesinin alınabileceği ve istendiği taktirde yazılı dokümanın da alınabileceği bir pencere açılır.
6.3.2. Kritik Envanter Listesi
Firmanın stoklarının kritik durumda olanların listesini verir. Firmada bulunan stokların sayısı 5 (beş)’in altında olanların listesinin alınacağı bir rapordan oluşur. İstendiği zaman yazılı doküman alınabilir. 
6.3.3. Personel Listesi
Firmada çalışan personeli listesini ve kimlik bilgilerinin de bulunduğu bir pencere açılır istendiğinde yazılı doküman alınabilir.
6.4. Pencere Menüsü
AnaForm (MDIForm) içinde birden fazla form açıldığı taktirde bu formlar arasında dolaşmak için kullanmak amacıyla tasarlanmıştır. VB’in menüler için özel tasarlamış olduğu bir özelliktir. MDChild özelliği verilmiş olan formların açılması durumunda isimleri kendiliğinden bu menüye eklenir.
6.5. Yardım Menüsü
Yardım menüsü de iki seçenekli bir menüdür. İlk seçenek Demirbaş Takibi Yardım ve ikinci seçenek Hakkında’dır.
6.5.1. Demirbaş Takibi Yardım
Demirbaş Takibi programının (menülerin ve formların) kullanımda kullanıcıya yardımcı olmak için hazırlanmış olan bir yardım penceresini ekrana getirir.
6.5.2. Hakkında
Demirbaş Takibi programının versiyonu, programcı bilgileri, uyarı gibi bilgilerin bulunduğu bir pencereden oluşur.
 
BÖLÜM 7: PROJE CODE’LARI
 
7.1. AnaMenü (AnaMenü.frm)
Private Sub dty_Click()
Shell ("c:\Windows\Winhelp.exe c:\Demirbaş\Yardım.hlp")
End Sub

Private Sub eskiperkrt_Click()
perkartıeski.Show
End Sub

Private Sub MDIForm_Load()
Unload başla
End Sub

Private Sub Son_Click()
secim = MsgBox("Programdan çıkmak istiyormusunuz?", 36)
If secim = 6 Then
    End
End If
End Sub

Private Sub yenistkartı_Click()
stkartıyeni.Show
End Sub

Private Sub eskistkrt_Click()
stkartıeski.Show
End Sub

Private Sub Yeniperkrt_Click()
perkartıyeni.Show
End Sub
Private Sub eh_Click()
hareketeski.Show
End Sub
Private Sub gç_Click()
Hareket.Show
End Sub

Private Sub SL_Click()
CRstok.RetrieveDataFiles
CRstok.Action = 1
End Sub
Private Sub KSEL_Click()
CRKritikStok.RetrieveDataFiles
CRKritikStok.Action = 1
End Sub

Private Sub ML_Click()
CRMemur.RetrieveDataFiles
CRMemur.Action = 1
End Sub

Private Sub About_Click()
hakkında.Show
End Sub
 
7.2. StKartıYeni (StKartıYeni.frm)
Private Sub stkod_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    stad.SetFocus
End If
End Sub

Private Sub stad_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    stbirim.SetFocus
End If
End Sub

Private Sub stbirim_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    stmiktar.SetFocus
End If
End Sub

Private Sub stmiktar_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    stkod.SetFocus
End If
End Sub

Private Sub kayıt_Click()
With Data1.Recordset
    ölçüt = "stkod ='" & stkod.Text & "'"
    .FindFirst ölçüt
    If stkod.Text = "" Then
        MsgBox ("Kodu boşluk giremezsiniz!")
        stkod.SetFocus
        GoTo Atla
    End If
    If .NoMatch = False Then
        MsgBox ("Bu kodda kayıt var yeni kod yazın")
        stkod.Text = ""
        stkod.SetFocus
        GoTo Atla
    End If
    If IsNumeric(stmiktar) Then
        secim = MsgBox("Kayıt yapılmak üzere eminmisiniz?", 68)
        If secim = 6 Then
            .AddNew
            .Fields("stkod") = stkod.Text
            .Fields("stad") = stad.Text
            .Fields("stbirim") = stbirim.Text
            If stmiktar.Text = "" Then
                stmiktar.Text = 0
            End If
            .Fields("stmiktar") = Val(stmiktar.Text)
            Data1.UpdateRecord
            Data1.Refresh
            ek_boşalt
            stkod.SetFocus
        End If
    Else
    MsgBox ("stok miktarını rakam girmelisiniz")
    stmiktar = ""
    stmiktar.SetFocus
    End If
End With
Atla:
End Sub


Private Sub iptal_Click()
ek_boşalt
End Sub

Private Sub Son_Click()
Unload Me
End Sub

Public Sub ek_boşalt()
stkod.Text = ""
stad.Text = ""
stbirim.Text = "ADET"
stmiktar.Text = ""
End Sub
 
7.3. StKartıEski (StKartıEski.frm)
Dim kayıtno As Integer
Dim kayıtsay As Integer
Dim x As Integer
Dim y As Integer
Dim ölçüt As String
Dim stkodyaz As String
Dim stadyaz As String
Dim stsoyyaz As String
Dim tarihyaz As Date
Dim işlemyaz As String
Dim miktaryaz As Integer
Dim açiklamayaz As String
Private Sub Data1_Reposition()
stkod.Text = ""
stad.Text = ""
stbirim.Text = ""
stmiktar.Text = ""
With Data1.Recordset
If .EOF Then
    .MovePrevious
    MsgBox ("Dosya sonuna gelindi")
End If
If .BOF Then
    .MoveNext
End If
    stkod.Text = .Fields("stkod")
    stad.Text = .Fields("stad")
    stbirim.Text = .Fields("stbirim")
    stmiktar.Text = .Fields("stmiktar")
    GrideYaz
End With
End Sub
Private Sub Form_Activate()
    GrideYaz
End Sub

Private Sub stad_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    stbirim.SetFocus
End If
End Sub

Private Sub stbirim_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    stad.SetFocus
    stbirim.Text = UCase(stbirim)
End If
End Sub

Private Sub Geri_Click()
  Data1.Recordset.MovePrevious
End Sub

Private Sub ileri_Click()
  Data1.Recordset.MoveNext
End Sub

Private Sub kayıt_Click()
secim = MsgBox("kayıt yapmak üzeresiniz eminmisiniz?", 4 + 64)
If secim = 6 Then
  kayıtet
End If
End Sub


Private Sub ara_Click()
On Error GoTo hata:
kod$ = InputBox("Aranacak kodu giriniz  :")
ölçüt = "stkod ='" & kod$ & "'"
Data1.Recordset.FindFirst ölçüt
If Not kod$ = Data1.Recordset.Fields("stkod") Then
    MsgBox ("Aradığınız kodda kayıt yok")
End If
hata:
End Sub

Private Sub sil_Click()
If Data1.Recordset.BOF And Data1.Recordset.EOF Then
    MsgBox ("Kayıtlı başka kayıt yok!")
    Else
    secim = MsgBox("Bu kartı silmek üzeresiniz eminmisiniz?", 68)
    If secim = 6 Then
        Data1.Recordset.Delete
        Data1.Refresh
    End If
End If
End Sub

Public Sub BaşlıkYaz()
Printer.FontUnderline = True
Printer.FontBold = True
Printer.CurrentY = 1200
Printer.CurrentX = 200
Printer.Print "PersonelKodu"
Printer.CurrentY = 1200
Printer.CurrentX = x + 1700
Printer.Print "Personel Adı"; "  "; "Soyadı"
Printer.CurrentY = 1200
Printer.CurrentX = x + 4400
Printer.Print "Tarih"
Printer.CurrentY = 1200
Printer.CurrentX = x + 5900
Printer.Print "İşlem"
Printer.CurrentY = 1200
Printer.CurrentX = x + 6800
Printer.Print "Miktar"
Printer.CurrentY = 1200
Printer.CurrentX = x + 7900
Printer.Print "Açıklama "
Printer.FontUnderline = False
Printer.FontBold = False
End Sub
Private Sub Yazdır_Click()
x = 200
y = 1200
With Data1.Recordset
    Printer.FontSize = 10
    Printer.FontName = "Times New Romans"
    Printer.CurrentX = 200
    Printer.CurrentY = 200
    Printer.Print "Stok Kod", ": "; .Fields("stkod")
    Printer.CurrentX = 200
    Printer.CurrentY = 400
    Printer.Print "Stok Adı", ": "; .Fields("Stad")
    Printer.CurrentX = 200
    Printer.CurrentY = 600
    Printer.Print "Birim", ": "; .Fields("stbirim")
    Printer.CurrentX = 200
    Printer.CurrentY = 800
    Printer.Print "Miktar", ": "; .Fields("stmiktar")
End With
BaşlıkYaz
Data2.RecordSource = "select * from hareket where stkod=  '" & Data1.Recordset![stkod] & "'"
Data2.Refresh
kaysay = Data2.Recordset.RecordCount
For dön = 1 To (kaysay)
    mkodyaz = Data2.Recordset.Fields("mkod")
    ölçüt = "mkod ='" & Data2.Recordset.Fields("mkod") & "'"
    Data3.Recordset.FindFirst ölçüt
    madyaz = Data3.Recordset.Fields("mad")
    msoyyaz = Data3.Recordset.Fields("msoy")
    tarihyaz = Data2.Recordset.Fields("tarih")
    işlemyaz = Data2.Recordset.Fields("islem")
    miktaryaz = Data2.Recordset.Fields("miktar")
    açiklamayaz = Data2.Recordset.Fields("açiklama")
    y = y + 250
    satırsay = satırsay + 1
    Printer.CurrentY = y
    Printer.CurrentX = x
    Printer.Print mkodyaz
    Printer.CurrentX = x + 1700
    Printer.CurrentY = y
    Printer.Print madyaz; "  "; msoyyaz
    Printer.CurrentX = x + 4400
    Printer.CurrentY = y
    Printer.Print tarihyaz
    Printer.CurrentX = x + 5900
    Printer.CurrentY = y
    Printer.Print işlemyaz
    Printer.CurrentX = x + 6800
    Printer.CurrentY = y
    Printer.Print miktaryaz
    Printer.CurrentX = x + 7900
    Printer.CurrentY = y
    Printer.Print açiklamayaz
    Data2.Recordset.MoveNext
    If satır = 40 Then
        y = 250
        satırsay = 1
        BaşlıkYaz
    End If
Next
Printer.EndDoc
GrideYaz
End Sub

Private Sub Son_Click()
Unload Me
End Sub

Public Sub kayıtet()
   Data1.Recordset.Edit
With Data1.Recordset
    .Fields("stkod") = stkod.Text
    .Fields("stad") = stad.Text
    .Fields("stbirim") = stbirim.Text
    If stmiktar.Text = "" Then
        stmiktar.Text = 0
    End If
    .Fields("stmiktar") = Val(stmiktar.Text)
End With
   Data1.UpdateRecord
   Data1.Refresh
End Sub


Public Sub GrideYaz()
stmiktar.Text = Data1.Recordset.Fields("stmiktar")
Data2.RecordSource = "select * from hareket where stkod=  '" & Data1.Recordset![stkod] & "'"
Data2.Refresh
kaysay = Data2.Recordset.RecordCount
With MSFlexGrid1
'Tablodaki satır sayısı belirleniyor
.Rows = kaysay + 1
.RowHeight(0) = (300)
'kolonların genişliği ayarlanıyor
.ColWidth(0) = (1000)
.ColWidth(1) = (3000)
.ColWidth(3) = (600)
.ColWidth(4) = (600)
.ColWidth(5) = (4500)
'Tablonun başlıkları yazılıyor
.Row = 0
.Col = 0
.Text = "MemurKodu"
.Col = 1
.Text = "Memur Adı Soyadı"
.Col = 2
.Text = "Tarih"
.Col = 3
.Text = "İşlem"
.Col = 4
.Text = "Miktar"
.Col = 5
.Text = "Açıklama"
'Tabloya dosya içerii yazılıyor
For i = 1 To (kaysay)
    .Row = i
    .Col = 0
    .Text = Data2.Recordset.Fields("mkod")
    .Col = 1
    ölçüt = "mkod ='" & Data2.Recordset.Fields("mkod") & "'"
    Data3.Recordset.FindFirst ölçüt
    .Text = Data3.Recordset.Fields("mad") & "  " & Data3.Recordset.Fields("msoy")
    .Col = 2
    .Text = Data2.Recordset.Fields("tarih")
    .Col = 3
    .Text = Data2.Recordset.Fields("islem")
    .Col = 4
    .Text = Data2.Recordset.Fields("miktar")
    .Col = 5
    .Text = Data2.Recordset.Fields("açiklama")
    Data2.Recordset.MoveNext
Next
End With
End Sub
 
7.4. PerKartıYeni (PerKartıYeni.frm)
Dim ölçüt As String
Dim secim As String

Private Sub mkod_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    mad.SetFocus
End If
End Sub

Private Sub mad_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    msoy.SetFocus
End If
End Sub
Private Sub msoy_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    msoy.Text = UCase(msoy)
    mtel.SetFocus
End If
End Sub

Private Sub mtel_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    madres1.SetFocus
End If
End Sub

Private Sub madres1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    madres2.SetFocus
End If
End Sub
Private Sub madres2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    msehir.SetFocus
End If
End Sub

Private Sub msehir_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
    msehir.Text = UCase(msehir)
    mkod.SetFocus
End If
End Sub

Private Sub kayıt_Click()
With Data1.Recordset
    ölçüt = "mkod ='" & mkod.Text & "'"
    .FindFirst ölçüt
    If mkod.Text = "" Then
        MsgBox ("Kodu boşluk giremezsiniz")
        mkod.SetFocus
        GoTo Atla
    End If
    If .NoMatch = False Then
        MsgBox ("Bu kodda kayıt var yeni kod yazmalısınız!")
        mkod.Text = ""
        mkod.SetFocus
        GoTo Atla
    End If
secim = MsgBox("Kayıt yapılmak üzere eminmisiniz?", 68)
If secim = 6 Then
    .AddNew
    .Fields("mkod") = mkod.Text
    .Fields("mad") = mad.Text
    .Fields("msoy") = msoy.Text
    .Fields("mtel") = mtel.Text
    .Fields("madres") = madres1.Text & " " & madres2.Text
    .Fields("msehir") = msehir.Text
    Data1.UpdateRecord
    Data1.Refresh
    ek_boşalt
    mkod.SetFocus
End If
End With
Atla:
End Sub

Private Sub iptal_Click()
ek_boşalt
End Sub
Private Sub Son_Click()
Unload Me
End Sub
Public Sub ek_boşalt()
mkod.Text = ""
mad.Text = ""
msoy.Text = ""
mtel.Text = ""
madres1.Text = ""
madres2.Text = ""
msehir.Text = ""
End Sub
 
7.5. PerKartıEski (PerKartıEski.frm)
Dim dön As Integer
Dim i As Integer
Dim kaysay As Integer
Dim satırsay As Integer
Dim x As Integer
Dim y As Integer
Dim kod As String
Dim stkodyaz As String
Dim stadyaz As String
Dim tarihyaz As Date
Dim işlemyaz As String
Dim miktaryaz As Integer
Dim açiklamayaz As String

Private Sub Data1_Reposition()
mkod.Text = ""
mad.Text = ""
msoy.Text = ""
mtel.Text = ""
madres.Text = ""
msehir.Text = ""
With Data1.Recordset
If .EOF Then
    .MovePrevious
    MsgBox ("Dosya sonuna gelindi")
End If
If .BOF Then
    .MoveNext
End If
    mkod.Text = .Fields("mkod")
    mad.Text = .Fields("mad")
    msoy.Text = .Fields("msoy")
    mtel.Text = .Fields("mtel")
    madres.Text = .Fields("madres")
    msehir.Text = .Fields("msehir")
    GrideYaz
End With
End
Logged

OgrenciForum.Org
Sayfa: 1
  Yazdır  
 
Gitmek istediğiniz yer:  

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC
Rengli Theme By Burak & Forum
intaniye - TRplatform - tedavin - UslanmaM - barbie oyunları - Estetik - diyet - magazin - bebek - kavak yelleri - kpss 2008 - iyinet webmaster forumu 2008 seo yarışması - evden eve nakliye - evden eve taşıma
izlesene bilgi - seznam hledat - hledaj - Forumlar - Blouse - Sohbet - sohbet - bayrak - ingilizce eğitim seti - ÖDEV - Ayyıldız - AVOYUN - Dönem ödevi
MySQL ile Güçlendirildi PHP ile Güçlendirildi XHTML 1.0 Geçerli! CSS Geçerli!
Bu Sayfa 0.116 Saniyede 17 Sorgu ile Oluşturuldu