![]() |
|
|||||||
| Webmaster Bölümü Web Üzerine Tartışabileceğiniz Bir Bölümümüz |
![]() |
|
|
LinkBack | Seçenekler | Stil |
|
|
#1 (permalink) |
|
Üstteğmen
![]() |
kapsamlı Visual Basic Dersleri
Ders 1: Tanıtım
Programlama Temel Bilgileri. Visual Basic 6.0 Çalışma Ortamı. Araç kutusu, pencereler, mönüler. Uygulama: Kurs notlarında belirtilen uygulamalar. I. Programlama "yazılım nedir?" gibi sorulara, "bilgisayarın donanım kısmına yaşam veren komutlardır" gibi yanıtlar verilir. Burada vurgulanan; eğer bilgisayarda bir işi yapacaksak, onu gerçekleştirmek için program yazmamız gerekir. Örneğin, derslerimizin kayıtlarını ve notlarımızı tutmak istiyorsak ya da müşterilerimizin kayıtlarını tutmak istiyorsak bir programa gereksinimimiz var. Bunu Microsoft Excel gibi bir program aracılığıyla da yapabilirsiniz. Ancak program yazabilmek, bu işler için özel bir çözüm ya da uygulama geliştirmek anlamına gelir. İşte bu nedenle da yazılım yerine daha çok uygulama geliştirme (development) terimi kullanılır. Buradan "programı nasıl yazacağız?" sorusu akla gelir. Program, öncelikle bir işletim sistemi ya da platform için yazılır. Örneğin Windows XP için yazılan bir program Linux işletim sisteminde çalışmayacaktır. Platformun ardından programın yazılacağı dil seçilir. Örneğin Visual Basic ya da C++ gibi. Bu diller, bizim program yazmamızı sağlarlar. Bizim anlaşılabilir şekilde program geliştirmemizi ve geliştirdiğimiz programı bilgisayarın doğrudan çalıştırabileceği makine diline çevirirler. İşte, kabaca bu sürece programlama denir. A. Program Nedir? Bir program bilgisayara ne yapması gerektiğini söyleyen bir dizi komuttur. Bilgisayarlar işlemlerin kendi anlayacağı dilde (makine dili) açıkça yazılmasını isterler. Ancak bu işlemlerin makine dilinde bir programcı tarafından yapılması yerine programlamanın yapısal biçimde bir dil aracılığıyla yapılmasını ve daha sonra çevrilerek bilgisayara anlatılması işlemini programlama dilleri üstlenirler. Bu çevirme işlemine derleme (compile) ya da yorumlama (interpriting) denir. B. Nesneye Dayalı Programlama Nesneye dayalı programlama (object-oriented programming-OOP), program geliştirmek için kullanılan bir teknolojidir. OOP terimi değişik anlamlar taşımakla birlikte sağladığı standartlarla bileşen (component) programlamasını kolaylaştırmaktadır. Visual Basic özünde nesne-temelli bir programlama dilidir. Çok sayıda nesne hazır olarak Visual Basic içinde bulunur programcılar bu nesneleri kullanarak program yazarlar. OOP (Object-Oriented Programming) üç prensipe sahiptir: encapsulation, inheritance, ve polymorphism. Bu terimlere kısaca bir bakalım: Encapsulation nesne hakkındaki bilgiler ve işlemler anlamına gelir. Metot ve özellik olarak adlandırdığımız bu işlemler bir nesnenin niteliklerini ve işlemlerini ortaya koyar. Örneğin bir arabanın rengi, büyüklüğü gibi özellikleri. Inheritance (miras, etkilenme) sözcüğünün anlamı ise bir nesnenin başka bir nesne üzerine (bir üst nesneden etkilenerek) kurulmasıdır. Örneğin bir arabanın parçalardan oluşması ve parçanın da arabanın tam nesnesinden etkilenmesi gibi. Polymorphism ise belli bir işlemin (metodun) birçok nesne tarafından kullanılmasıdır. C. Olay-Temelli Programlama Nesne temelli programlama gibi bir programlama teknolojisi olmamakla birlikte; adından söz edeceğimiz bir yaklaşım da olay temelli programlamadır. Bu terim daha çok kullanıcıyla iletişim kuran programlar geliştirme anlamına gelir. Kullanıcının fare tıklaması, klavyeden yazı yazması ya da neden olduğu diğer işlemler birer olay olarak algılanır ve programın işleyişi ona göre yönlenir. Olay-temelli programlama (event-driven programming), klasik programlamanın aksine kullanıcıların işlemlerine (yapacakları hareketlere) göre programın yanıt vermesi temeline kurulu bir programlama sistemidir. Visual Basic ile geliştireceğimiz programlar için çoğunlukla olay temelli denilebilir. II. Microsoft Visual Basic Visual Basic (VB olarak da anılır) Microsoft tarafından geliştirilmiş modern bir programlama ortamıdır. Visual Basic'in bir programın yazılıp çalıştırılmasından öte, program geliştirmek için çok sayıda araca sahip olması; kullanıcı arabiriminin tasarlanması, hataların giderilmesi, veritabanı yaratmak, gibi gelişmiş özelliklere sahiptir. Visual Basic ile farklı düzeylerde (konularda) programlar geliştirilebilir. Visual Basic ile küçük bir işlemler için program geliştirilebileceği gibi, profesyonel programlar, veritabanı uygulamaları ve hatta Internet uygulamaları bile geliştirmek mümkündür. Örneğin bir cari hesap, stok, satış, imalat vb uygulamaları, oyun programı vb. Visual Basic'in sahip olduğu araçlar: Kullanıcı ara birimi geliştirmek için çok sayıda kontrol. Programı derleme ve hata bulmaya yönelik çok sayıda araç. Değişik veritabanlarına erişim. Diğer uygulamaların fonksiyonlarını kullanmayı sağlayan Active X™ teknolojisi. Uygulamanın EXE dosya olarak üretilebilmesi ve dağıtılması. Raporlama araçları. Veri yapısı araçları. Visual Basic ile neler yapabiliriz? Basit ve genel amaçlı uygulamalar. Şirketler için geliştirilen özel uygulamalar. Ticari programlar, satış sistemleri, veritabanı uygulamaları. Ticari amaçlı paket programlar. Web uygulamaları. A. Bir Visual Basic Programının Kısımları Bir programı belli kısımlardan oluşur. Bunların en basit olarak şu şekilde ele alabiliriz: Kullanıcı arabirimi. Bilgi işleme (hesaplamalar) Bilgi saklama (veritabanı işlemleri). Raporlama işlemleri. Kullanıcı arabirimi bir programın ekranını oluşturur. Diğer bir deyişle kullanıcıların bilgi girdiği etkileşimli ekranlardır. Bunlara form diyeceğiz. Bilgi işleme kısmı, programın yapacağı hesaplamaları ve işlemleri kapsar. Bu daha çok programın mantığı olarak adlandırılır. Veritabanı işlemleri, bildiğiniz gibi birçok uygulama için çok önemlidir. Yine aynı şekilde raporlama da bilgilerin yazıcıdan ya da ekrandan alınmasını sağlar. B. VB 6.0'ı Başlatmak Visual Basic 6.0’ın Windows işletim sistemleri üzerine kurulması ile birlikle Visual Studio 6.0 program grubu ya da Visual Basic 6.0 program grubu Start menüsünde Programs grubunda yer alır. Visual Basic’i başlatmak için bu seçenek üzerine tıklanır. B. Çalışma Ortamı Visual Basic 6.0'ın başlatılmasıyla birlikte, önce yazılacak programın (projenin) türü sorulur. Bu varsayım olarak (yaygın olarak) .EXE olarak seçilir. Ardından programlama ortamı ekrana gelir. Visual Basic 6.0 ortamı özellikle program birimlerinin düzenlenmesi için çok sayıda bölüme sahiptir. Bu bölümler aracılığıyla programın tasarımı yapılır ve kod yazılır. Visual Basic çalışma ortamı programın arabiriminin geliştirilmesi bakımından bir tasarım zamanı (design time) program geliştirme ortamıdır. Örneğin bir formun ya da bir kontrolün özellikleri, özellik tablosundan düzenlenebilir. Form ve diğer kontroller seçilerek özellikler (Properties) tablosundan renkleri vb. bütün özellikleri düzenlenebilir. Project Penceresi Yeni bir Visual Basic programına bir proje (project) olarak başlanır. Bir projeye (uygulama) başlamadan önce geliştirilecek programın türü seçilir. Varsayılan proje türü Standard EXE dir. Standard EXE program, EXE dosya olarak çalışabilir bir programı yaratmak anlamına gelir. Tablo: Proje tipleri Standard EXE Normal bir Visual Basic projesi. ActiveX EXE ActiveX kodu yaratma ActiveX DLL ActiveX bileşini yaratma ActiveX Control ActiveX kontrolü yaratma VB Application Wizard Bir Visual Basic uygulamasını adım adım yaratır VB Wizard Manager Sihirbaz yaratmayı sağlar. Data Project Server veritabanlarına ulaşmak için yaratılan veritabanı projesi. IIS Application Internet Information Server uygulaması yaratır. Addin Add-in nesneleri yaratır. ActiveX Document Dll ActiveX belgesi DLL olarak. ActiveX Document EXE ActiveX belgesi EXE olarak. DHTML Application Dynamic HTML (DHTML) teknolojisi Microsoft Internet Explorer içinde yer alacak sayfalar yaratır. VB Enterprise Edition Co… Visual Basic Enterprise Edition özellikleri. Open düğmesine tıklayarak ya da seçilen proje türüne çift tıklayarak yeni bir projeye başlanır. Çalışma Ortamı Proje penceresiyle birlikte bir form ekrana gelir. Projenin başlangıç adı Project1, formun başlangıç adı ise Form1 dir. Çalışma ortamının üst tarafında Visual Basic 6.0'ın menü çubuğu ve standart araç çubuğu yer alır. Ortamın sol tarafında araç kutusu (toolbox) yer alır. Ortada ise proje penceresi ve içinde bir form durur. Ortamın sağ tarafında ise proje içindeki formları, modülleri ve diğer bileşenleri gösteren Project penceresi bulunur. Onun altında Properties (Özellikler) penceresi yer alır. Çalışma ortamındaki ana sahne formdur. Programcı formu kullanıcının karşına gelecek ekran gibi düşünür ve tasarlar. Bu tasarımda ise yapılan ana işlem kontrolleri form üzerine yerleştirilmesidir. Formlar Hemen hemen her Visual Basic uygulamasında bir form bulunur. Form üzerine denetimler ve grafikler eklenerek uygulama geliştirilir. Her bir form aynı zamanda form tasarımının yapıldığı bir alandır. Formlar uygulamanın (programın) kullanıcı arabirimini oluşturur. Visual Basic kontrollerinden (components) istenilen kontroller form üzerine fare ile yerleştirilerek uygulamanın arabirimi oluşturulur. Örneğin bir bilgi giriş ekranı form olarak yaratılır: ADI: [metin kutusu] ADRESİ: [metin kutusu] NUMARASI: [metin kutusu] Bu arabirim üzerinde metin kutuları (textbox), komut düğmeleri (command buttons) gibi veri-işlem elemanları yer alır. Ardından istenilen olaylara göre kodlar yazılarak programın yazılması sağlanır. Kontroller İşte kullanıcı arabirimini hazırlamak için formlar üzerine veri girişi için metin kutusu (text box), bir işlemi başlatmak için komut düğmesi (command button) gibi birimler yerleştirilir. Bu veri-işlem birimlerine kontrol (control) denir. Bu kontroller, Visual Basic ortamında yer alan araç kutusundan seçilerek kullanılır. Araç Kutusu (Toolbox) Görsel programlama ortamlarında görsel kontrollerin çizilmesi için zengin bir araç kutusu kullanılır. Visual Basic araç kutusunda programın tasarımı sırasında kullanılmak üzere çok sayıda aracı içerir. Araç kutusunda yer alan standart kontroller: Standart kontrol İşlevi PictureBox Resim kutusu: Bitmap, Icon, Gif resimlerin gösterilmesini sağlar. Label Etiket: Sadece bilgi vermek ya da görüntü olarak form üzerinde durur. Genellikle metin kutularının adlarını göstermek için kullanılır. TextBox Metin kutusu: Veri girişi için kullanılan bir kontroldür. Hemen hemen bütün programlarda kullanıcılardan veri girişi, değiştirme yapması gereken alanlar gerekir. İşte metin kutusu bu amaçla kullanılır. Frame Çerçeve: Kontrolleri gruplamak için kullanılır. CommandButton Komut düğmesi: Bir işlemin başlatılmasını sağlar. Genellikle fare ile üzerine tıklanarak kullanılır. CheckBox İşaret kutusu: Bir seçim yapmayı sağlar. OptionBox Seçenek kutusu: Seçim yapmayı sağlar. ComboBox Açılan kutu: ListBox Liste: Birçok elemanı liste biçiminde göstermek için kullanılır. HScrollBar Yatay kaydırma çubuğu: Yatay olarak kullanılan kaydırma çubuğu. VScrollBar Dikey kaydırma çubuğu: Dikey olarak kullanılan kaydırma çubuğu. Timer Zaman saati: Zamanın takip edilmesini sağlar. DriveListBox Sürücü listesi: Sistemdeki sürücüleri listeler. DirListBox Dizin listesi: Sistemdeki dizinleri (klasörleri) listeler. FileListBox Dosya listesi: Bir dizin içindeki dosyaları gösterir. Shape Şekil: Şekil çizmeyi sağlar. Line Çizgi: Düz çizgi çizmek için kullanılır. Image Resim gösterme: Sadece resimileri göstermek için kullanılır. Data Data: Verileri göstermek için kullanılır. OLE OLE: Form Üzerine Bir Kontrol Yerleştirmek Bir Visual Basic programının kullanıcı arabirimi form üzerine yerleştirilen kontroller ile tasarlanır. Bir kontrolün form üzerine yerleştirilmesi için şu işlemler yapılır: Araç kutusundan istenilen araç üzerine tıklanır. Örneğin Text Box. Form üzerinde istenilen bir yere gelinir ve kontrolün sol üst köşesi yerleştireceğiniz yere fare ile tıklanarak sürükleyin ve kontrol yerleştirilir. Uygulama Visual Studio 6.0 ya da Visual Basic 6.0 programını bilgisayarınıza yükleyin. Visual Basic 6.0'ı başlatın. İlk proje türünü .EXE olarak seçin. Çalışma ortamını tanıyın: Araç kutusundaki kontrolleri form üzerine ekleyin. Kaldırın. Kontrollerin özelliklerine bakın. Kontroller üzerinde çift tıklayın. Ekrana gelen kod penceresini inceleyin. Gözden Geçirme 1. Bilgisayarlar hangi dilden anlarlar? 2. Yorumlayıcı mı hızlıdır? Yoksa derleyici mi? 3. Visual Basic ile hangi programları yazabilirsiniz? 4. Program geliştirme adımları nelerdir? 5. Bir program işi aldınız. Nereden başlarsınız. Kodlamadan önce hangi hazırlıkları yaparsınız. 6. Form nedir? Her VB programı için bir form gerekir mi? 7. Kontrol nedir? İnteraktif programlar yazarken kontrollerin kullanımını açıklayın? DERS 2:the-sabotage.org Ders 2: Temel Bileşenler Amaçlar: Programın yapısı açıklamak. Veri elemanlarını tanımlamak. Veri türlerini açıklamak. I. Bir Visual Basic Programının Yapısı Bir Visual Basic programı bir proje dosyası olarak geliştirilir. Bu dosya Proje .vbp uzantılı bir dosyadır. Ayrıca proje dosyası için form ve modül gibi diğer dosyalar da yaratılır. Visual Basic'in başlatılmasıyla beraber ya da bir proje içinde yeni bir uygulamaya başlamak için File menüsünden New Project komutu kullanılır. Ardından geliştirilecek programın Standard EXE ya da diğer işletilebilir birim şekli seçilir. Ardından boş bir form ile Visual Basic tümleşik program geliştirme ortamı programcının karşısına çıkar. Uygulamanın arabirimi ve kodları yazıldıktan bütün kodlar bir proje olarak kayıt edilir. Projenin kayıt edilmesinden önce formların da kayıtları yapılır. Formlar .frm olarak, projeler de .vbp dosyası olarak kayıt edilir. A. Formlar ve Modüller Diğer programlama dillerinde olduğu gibi Visual Basic’in de belli bir kod kuralları ve yöntemleri vardır. Visual Basic içinde görsel arabirimler form olarak kodlar da istenirse bir modül olarak saklanır. Form modülü Standart modülü Basit uygulamalarda genellikle bir form bulunur. Bütün kodlar bu formun modülünde (kod alanı) yer alır. Uygulama büyüdükçe ek formlar projeye eklenerek modül sayısı artırılabilir. Projeye modül eklemek için Project menüsünden Add Module komutu kullanılır. Formlar kullanıcı arabirimini tasarlandığı zemindir. Örneğin bir müşteri bilgileri için metin kutularının (text box) konacağı yer formdur. Formlar .FRM dosya uzantılı olarak kaydedilir. Modüller ise uygulama içerisindeki kod birimleridir. .BAS dosya uzantılı dosya olarak kaydedilirler. B. Kodlama Visual Basic'te kodlama belli yapılardaki birimlerle yapılır. Bunlar genel olarak yordam (procedure) olarak adlandırılır. 1. Procedure Bir Visual Basic programı çok sayıda yordamdan (prodecure) oluşur. Yapılacak işlemler birer yordam olarak tasarlanırlar. Yordamlar bir program bloğu ya da bir program parçası olarak düşünülebilir. Visual Basic’te değişik türde yordamlar (procedure) kullanılır: Sub Function Genel olarak bütün işlemler için bir Sub yordamı kullanılır. Bu yordamlar bir olaya bağlı olarak (bir düğmeye tıklandığında) ya da doğrudan çağrılarak çalıştırılır. Function yordamlar ise bir değer döndürürler. Örneğin bir faiz hesabını yapmak ve sonucunu döndürmek için fonksiyon kullanılmalıdır. Bir Sub yordamının yapısı: [Private|Public][Static] Sub yordam adı (argümanlar) Deyimler....... End Sub Yordam başlatıldığında Sub ve End deyimleri arasında kalan satırlar işletilir. Visual Basic’te yordamlar (procedure) ikiye ayrılırlar: Genel yordamlar Olay yordamları Genel Yordamlar Bir genel procedure belli bir işlemi üstlenen program parçasıdır. Diğer yordamlardan çağırılarak kullanılırlar. Yapısı: Sub yordam adı(arguments ) -deyimler- End Sub Olay Yordaları Olay yordamları bir olayın (event) oluşmasına tepki olarak çalışırlar. Yaygın olarak bu yordamları kullanırız, çünkü kullanıcı etkileşimi (fare tıklaması ya da klavyeden basılan tuşlar) programın kontrolüne hakimdir. Visual Basic nesneleri (formlar, metin kutuları, düğmeler, vb) belli olayları tanırlar. Bir komut düğmesinin olayları: Click: Tıklama GotFocus: Odaklanma,üzerine gelme. KeyDown: Bir tuşa basmak. MouseDown: Farenin bir tuşuna basmak. Olay yordamları, bir nesnenin alt tire ile olaylara bağlı olarak geliştirilir. Bu adlar Visual Basic kod editörü tarafından otomatik olarak ya da manuel olarak oluşturulur. Örnek: Command1_Click Olay yordamları Visual Basic nesnelerinin olaylarına bağlı olarak geliştirilirler: Örneğin Form1_load olay yordamı bir formun açılması sırasında çalışacak bir yordamı, Command1_Click olay yordamı da bir komut düğmesine tıklandığında çalışacak bir kod birimini gösterir. Yapısı: Sub kontrol adı_olay adı(argümanlar ) -deyimler- End Sub Olay yordamlarının adını kod editörü içinde doğrudan yazabileceğiniz gibi Visual Basic tarafından otomatik olarak koda eklenen yordam ve olay adlarını da kolayca kullanabilirsiniz. Fonksiyonlar Bir procedure olarak düzenlenen fonskiyonlar belli bir işlemi kod olarak içeren ve bir değeri geri döndüren program parçalarıdır. Bir fonksiyon yordamının yapısı: [Private|Public][Static] Function yordam adı (argümanlar) [As tip] deyimler.......... End Function Fonksiyonlar ayrı bir yordam olarak düzenlenirler. Fonksiyonların kullanımında argümanlar önemlidir. Fonksiyonlar argümanları alırlar, bir dizi işlem yaparlar ve sonucu döndürürler. Örnek: Function KDVHes(deger1, deger2, deger3) -deyimler- End Function Kullanımı: Toplam = Deger1 + KDVHes(ucret) C. Visual Basic’te Değişken Adlandırma Visual Basic ile program yazmada adlandırma işlemini çok sık yaparız. Bir değişkenin tanımlanması, bir Sub ya da Function’a ad vermek birer adlandırma işlemidir. Visual Basic’te adlandırma kuralları: Bir harf ile başlamalıdırlar. Nokta içermezler. 255 karakterden fazla olmazlar. Kontrol adları, form adları, class ve modul adları 40 karakteri geçmez. II. Veri Elemanlarının Tanımlaması Bir programda geçici olarak verilerin temsili ve değerlerin saklanması için değişkenlere gereksinim duyulur. Örneğin çok sayıda değeri birbiriyle karşılaştırmak ya da üzerlerinde çeşitli hesaplamalar yapmak için ekrandan alınan verileri; A, B, C gibi değişkenler olarak temsil etmek gibi. İşte bu nedenle birçok programlama dilinde olduğu gibi Visual Basic’te de geçici değerlerin saklanması için değişkenler (variables) kullanılır. Değişkenlerin mutlaka bir adı ve tipi vardır. Bir değişken kullanılmadan önce tanımlanır. Bu tanımlama genellikle Dim deyimi ile yordamın başında yapılır: Yapısı: Dim Değişken [As türü] Dim deyimi tanımlama deyimidir. Genellikle modülün ya da procedure’ın başında yer alır. Değişken ise bilginin adını gösterir. Örneğin "Toplam" bir değişken adıdır. Türü ise değişkenin tipini gösterir. Bir değişken içerdiği veri bakımından farklı özelliklere sahip olabilir. Dim A As Integer A = 15 A = A + 4 A. Yerel Değişkenler Yerel değişkenler procedure-düzeyi değişkenlerdir. Bir procedure içinde tanımlanırlar, kullanılırlar. Procedure'ın başlamasıyla bu değişkenler tanımlanır. Yerel değişkenler özellikle hesaplanan bir takım geçici değerlerin kullanılmasını sağlar. Genellikle Temp ya da Geçici gibi ekleri de bu yüzden alırlar. TempToplam GecTop GecDeg1 AraToplam Yerel değişkenler Dim deyimi ile tanımlanırlar: Dim AraToplam As Integer Dim Mesaj As Variant Geçici olarak tanımlanan yerel değişkenler procedure içinde yapılan ve kullanılan hesaplamalar için idealdir. Eğer bir değişkene uygulama boyunca diğer zamanlarda da erişilecekse (değişken kullanılacaksa) o zaman Dim ile kullanılması daha iyi olur III. Veri Türleri Bir değişken tanımlanırken değişkenin adı ve tipi (type) belirtilir. Genellikle varsayım tip olan Variant bir veri kullanılmayacağı zaman önce değişken tanımlanır ve tipi belirtilir. Değişkenin tipi onun içereceği bilgi türünü ifade eder. Veri Adı Tipi Adı Soyadı Alfabetik Ücreti Sayısal Cinsiyeti Evet/Hayır Visual Basic ile tanımlanan değişken tipleri şunlardır: Tablo: Değişken tipleri Tip Bellek alanı Değer aralığı Integer 2 bayt -32,768 to +32,767 Long 4 bayt (yaklaşık) +/- 2 milyar Single 4 bayt +/- 1E-45 to 3E38 Double 8 bayt +/- 5E-324 to 1.8E308 Currency 8 bayt +/- 9E14 String 1 karakter bir bayt Sabit uzunluklu veriler için 65,400 karakter. 2 milyar karakter dinamik veriler için Byte 1 bayt 0 to 255 Boolean 2 bayt True ya da False Date 8 bayt 1/1/100 to 12/31/9999 Object 4 bayt N/A Variant 16 bayt +1 bayt N/A her karakter için Bir değişkenin tipi o değişkenin değeri içereceği veriyi ve bellekte nasıl tutulacağını gösterir. Bir değişken tanımlandığında ona bir veri tipi verilir. Bütün değişkenler bir veri tipi ile ne tür bir veriyi içerdiğini belirtirler. Böylece bir değişkenin tipini belirtmek onun daha etkin kullanımını sağlar. Örneğin bir müşteri adı String tipinde tanımlanırken, müşterinin numarası Integer tanımlanabilir. NOT:Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...] adresine bakınız. Değişken tipini tanımlamak için Dim, Private, Public, Static gibi deyimler kullanılır. Ardından tip belirtilir. Tipler Currency, Double, String gibi deyimlerle tanımlanır. Private I As Integer Dim Toplam As Double Static ismi As String Public bakiye As Currency Bir tanımlama deyimi ile çok sayıda değişken de tanımlanır: Private I As Integer, Toplam As Double Private ismi As String, bakiye As Currency IV. Gözden Geçirme 1. Visual Basic programlarının ana dosyası nedir? Proje ve formu tanımlayın. 2. String veri tipinin özellikleri nelerdir. Değişken ve sabit uzunluklu string bilgilere örnek verin? 3. Bir programı Form1 ile başlatmak istemezseniz ne yaparsınız? 4. Variant kullanımının fayda ve zararlarını açıklayın? DERS 3:the-sabotage.org Ders 3: Denetimler Amaçlar: Denetimleri tanımlamak ve kullanmak. I. Kontroller Kontroller (controls) programın arabirimini oluşturmada bize yardım eden nesnelerdir. Visual Basic ile programlamada kullanıcı ile iletişimde bu kontroller kullanılır. Örneğin kullanıcıdan verileri almak için metin kutuları (text box), komut bildirimleri için komut düğmesi (command button) kullnaılır. Visual Basic başlatıldığında Toolbox üzerinde standart Visual Basic kontrolleri görünür. Bu kontroller şunlardır: Tablo: Araç kutusunda yer alan standart kontroller Standart kontrol İşlevi PictureBox Resim kutusu: Bitmzp, Icon, Gif resimlerin gösterilmesini sağlar. Label Etiket: Sadece bilgi vermek ya da görüntü olarak form üzerinde durur. Genellikle metin kutularının adlarını göstermek için kullanılır. TextBox Metin kutusu: Veri girişi için kullanılan bir kontroldür. Hemen hemen bütün programlarda kullanıcılardan veri girişi, değiştirme yapması gereken alanlar gerekir. İşte metin kutusu bu amaçla kullanılır. Frame Çerçeve: Kontrolleri gruplamak için kullanılır. CommandButton Komut düğmesi: Bir işlemin başlatılmasını sağlar. Genellikle fare ile üzerine tıklanarak kullanılır. CheckBox İşaret kutusu: Bir seçim yapmayı sağlar. OptionBox Seçenek kutusu: Seçim yapmayı sağlar. ComboBox Açılan kutu: Seçenek listesinden seçim yapmak için kullanılır. ListBox Liste: Birçok elemanı liste biçiminde göstermek için kullanılır. Seçenek listesinden seçim yapmak için kullanılır. HScrollBar Yatay kaydırma çubuğu: Yatay olarak kullanılan kaydırma çubuğu. VScrollBar Dikey kaydırma çubuğu: Dikey olarak kullanılan kaydırma çubuğu. Timer Zaman saati: Zamanın takip edilmesini sağlar. DriveListBox Sürücü listesi: Sistemdeki sürücüleri listeler. DirListBox Dizin listesi: Sistemdeki dizinleri (klasörleri) listeler. FileListBox Dosya listesi: Bir dizin içindeki dosyaları gösterir. Shape Şekil: Şekil çizmeyi sağlar. Line Çizgi: Düz çizgi çizmek için kullanılır. Image Resim gösterme: Sadece resimileri göstermek için kullanılır Data Data: Verileri göstermek için kullanılır. OLE OLE: Diğer bir uygulamadan nesne bağlamayı sağlar. Resim: Visual Basic 6.0 Toolbox A. Kontrollerin Kullamı Kontrollerin projedeki formlara eklenmesi için, araç kutusundan fare ile sürüklenerek form üzerine bırakılır. Şimdi kontrollerin bazılarını ele alalım: 1. Textbox (Metin Kutusu) Bilgi girişi için kullanılır. Birçok programda kullanılan veri giriş alanları; adı soyadı, adresi, telefon numarası gibi alanlar birer metin kutusudur. Metin kutusu veri girişi sırasında standart olarak silme, değiştirme, kesme-kopyalama-yapıştırma, birden çok satır girme özelliklerine sahiptir. NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...] adresine bakınız. 2. Command Button (Komut Düğmesi) Hemen hemen en yaygın kullanılan kontrol ve yaygın olarak Click olayıyla birlikte kullanılır. Birçok işlem fare ile tıklama ile başlatılır. İşte bu olaya click (tıklama) denir. Birçok işlem düğmeye tıklanarak başlar. Örnek: Private Sub Command1_Click() Msgbox "düğmeye tıklandı !!!" End Sub 3. CheckBox (İşaret Kutusu) Belli seçeneklerin seçili olup olmadıklarını belirtmeye yarar. Genellikle bir grup seçenekten bir ya da daha çoğunun seçilmesiyle işler. Örneğin bir müşteri bilgisinde belli özellikleri seçmek için kullanılabilir ya da öğrencinin seçmeli olarak aldığı dersleri düşünün. Seçmeli Dersler: Beden Eğitimi Müzik Halk Oyunları Value özelliğinin 1 olması o seçenek kutusunun seçilmiş olduğunu gösterir. 0 değeri seçeneklerin seçilmediğini gösterir. Check1.Value = 1 Then …. deyimi ile işaret kutusunun seçildiği anlaşılır. 4. Option Button (Seçenek Düğmesi) Birçok seçenekten sadece birisininin seçildiği bir seçenek kontrolüdür. Genellikle bir grup seçenekten birisinin seçilmesiyle işler. Örneğin müşterinin gurubu, özellikleri ya da bir personelin eğitimi gibi (ilk, orta, yüksek değerlerinden birisi). Value Özelliği Value özelliğinin True olması o seçenek kutusunun seçilmiş olduğunu gösterir. Option1.Value = True Örnek: Ödemenin döviz cinsi: Private Sub Command1_Click() Const DolarKuru = 1400000 Const MarkKuru = 650000 Dim Döviz As Integer If Option1.Value Then Döviz = 1 ElseIf Option2.Value Then Döviz = 2 ElseIf Option3.Value Then Döviz = 3 End If MsgBox Döviz ...... End Sub 5. ComboBox (Bileşik Kutu) Birçok seçenekten birisinin seçilmesini sağlayan bir kutudur. Özellikle belli seçeneklerden birisinin açılan bir listeden seçilmesini sağlar. Çok yaygın bir kullanıma sahiptir.Listeye bir eleman eklemek için kullanılır. Combo1.AddItem "Adana" Combo1.AddItem "Ankara" 6. ListBox (Liste Kutusu) Birçok elemanı bir liste olarak göstermeye yarar. Bunlar adlar olabilir, müşteri listesi olabilir ya da birçok seçeneğin yer aldığı listeler olabilir. Listeye bir eleman eklemek için kullanılır. List1.AddItem "Ankara" List1.AddItem "İzmir" List1.AddItem "Adana" 7. Picture Box (Resim Kutusu) Picture özelliği PictureBox içindeki resmi belirtir. Bu özellik aracılığıyla değişik resim dosyaları form üzerinde görüntülenebilir. Picture özelliği ile bir resimi yüklemek için LoadPicture fonksiyonu kullanılır. Picture1.Picture = LoadPicture ("d:\Winnt\snakeskin.bmp") Gözden Geçirme 1. Kontrollerin adlandırılmasındaki ne tür bir yaklaşım izlersiniz. 2. ComboBox ile ListBox'ın benzer ve farklı yönleri nelerdir? 3. Image ile Picture'ın farkları nelerdir? 4. Araç kutusundan bir kontrol nasıl kaldırılır? DERS 4:the-sabotage.org Ders 4: Form Kullanımı Amaçlar: Form tasarımını açıklamak. Form metot, olay ve özelliklerini açıklamak. I. Formlar Kullanıcı arabirimi uygulamaların görünen kısmını oluşturur. Bunun yanı sıra kullanıcıların veri girişi, programın işletimi kullanıcı arabirimi sayesinde yapılır. Kullanıcı arabiriminin en önemli parçası formlardır. Formlar kullanıcı arabiriminin zemini olurlar. Bir uygulama geliştiriyorsunuz; stok kartları, cari hesap kartları, vb bilgi giriş ve görüntüleme ekranları hazırlayacaksınız. İşte bunlar formdur. Formlar uygulamalarda zemin olarak yer alırlar. Uygulama ortamına bir form eklemek için şu işlemler yapılır. Yeni bir form eklemek için: Project menüsünden Add Form komutu seçilir. Form tipi seçilir. Open düğmesine tıklanır. A. Formları Kullanmak Formları kullanmak, formları tasarlamak ve onların görüntülenmesi kontrol etmek anlamına gelir. Formları tasarlamak, yeni formları projeye eklemek ve gereken kontrolleri onların üzerine eklemektir. 1. Show Metodu Bir formu gösterir. Yapısı: nesne.Show Nesne bilgisi gösterilecek formu belirtir. Show metodu ile gösterilmek üzere çağırılan form yüklenmemişse Visual Basic onu otomatik olark yükler. Private Sub Command1_Click() Form2.Show End Sub Private Sub Command2_Click() Form2.Hide End Sub Private Sub Command3_Click() Load Form2 End Sub Private Sub Command4_Click() Unload Form2 End Sub Private Sub Command5_Click() Text = Form2.Text1 MsgBox Text End Sub 2. Form Olayları Form olayları form üzerindeki işlemler sonucu oluşan tanımlı işlemlerdir. Tablo: Form Olayları Olay Açıklama Activate Pencerenin aktif pencere olmasını sağlar. Click Form üzerine tıklamak. DblClick Form üzerine çift tıklamak. Deactivate Pencerenin aktif pencere olmaması. GotFocus Formun aktifleştirilmesi. KeyDown, KeyUp Tuşa basmak ve bırakmak. KeyPress Tuşa basmak Load Formun yüklenmesi LostFocus Formun aktifliğini kaybetmesi. MouseDown, MouseUp Farenin tuşuna basmak ve bırakmak. MouseMove Farenin sürüklenmesi. Paint Formun taşınması ve genişletilmesi işleminden sonra oluşur. QueryUnload Uygulama kapanmadan önce. Resize Formun boyutlarının değişmesi. Terminate Formun bütün referanslarının sonlanması. Click Olayı Kullanıcının nesne üzerinde farenin tuşuna basıp bırakmasıyla oluşur. Form üzerinde bir alan fare ile tıklamak bu olayı oluşturur. Ayrıca kontrolün değerinin değişmesi de Click olayını oluşturur. Yapısı: Private Sub Form_Click( ) Nesne bilgisi form ya da diğer bir nesneyi belirtir. İndeks bilgisi bir kontrolü belirtir. Click olayı genellikle bir nesneye bağlanır. Command1_Click ya da başka bir kontrol. Click olayı ayrıca fare tıklamasıyla birlikte MouseDown ve MouseUp olaylarını da oluşturur. Şekil: Fare Olayları B. Başlangıç Formu F5 tuşuna bastığınızda (ya da Start, Run komutu) projenizin Form1 olarak düzenlenen formu ekrana gelir. Ancak birçok durumda başka bir formun ilk başta ekrana gelmesini ya da formlardan önce başka işlemlerin yapılmasını isteyebilirsiniz. NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...] adresine bakınız. Başlangıç (startup) formunu değiştirmek için: Project menüsünden Project Properties komutu seçilir. General sekmesi seçilir. StartUp Object bölümünde istenilen form seçilir. OK düğmesi ile seçim onaylanır. Olay-temelli bir uygulama son formun kapanmasıyla sona erer. Ancak uygulamanın kapanmasından önce bütün formların kapandığının kontrol edilmesi gerekir. Bu işlem için yüklü formların Unload edilmesi gerekir. Eğer uygulamada sadece bir form varsa onu Unload etmek için: Private Sub Command5_Click() Unload Me End Sub Gözden Geçirme 1. Form nasıl görüntülenir? 2. Bir formu Unload ve Hide etmeyi karşılaştırın? DERS 5:the-sabotage.org Ders 5: Program Kontrolü Amaçlar: Program içindeki akış kontrolünü açıklamak. I. Program Kontrolü Program içinde tanımlama deyimleri, atama deyimleri yer alır. Ancak programın işleyişinde bu deyimler sırasıyla değil de belli bir mantıkla işletilmesi gerekir. İşte program deyimlerinin işleyiş sırasının kontrolüne program kontrolü denir. Program kontrolü karar yapıları ve döngülerle sağlanır: Karar yapıları: If...Then..Else Select Case Karar yapılarının yanı sıra yaygın olarak kullanılan bir diğer yapı da döngü (loop) tur. Döngüler özellikle programın etkinliği bakımından önemli bir programlama tekniğidir. Döngü Yapıları: Do...Loop For...Next A. Döngüler Döngüler işlemlerin belli bir sayıda ya da koşulla ilgili olarak yinelenmesi (tekrarı) anlamına gelir. Döngü yapıları: Do...Loop: Bir koşula göre döngü. For...Next: Belli bir sayıda döngü (sayaçlı). Bir sayaçlı döngü For...Next döngüsü olarak bilinir. For deyimi ile döngünün sayacını tanımlanır. Next deyimi ile yinelecek blok sona erer. Döngünün her dönüşünde sayaç değişkeni bir sayı artırılır. Böylece bir sayıdan diğerine kadar işlemler sürüdürülür. Do...Loop Deyimi Bir blok deyimi verilen koşul doğru (True) olduğu sürece işletir. Yapısı: Do [ifade bloğu] [Exit Do] [ifade bloğu] Loop [{While | Until} koşul] Do döngülerinin temelinde koşul (condition) yatar. Bir koşul True ya da False olabilen bir ifadedir. Tablo: İlişki operatörleri Operatör Anlamı < Küçüktür <= Küçük eşittir > Büyüktür >= Büyük eşittir <> Eşit değildir = Eşittir And Ve Or Veya – Ya da Not Değil Örnek: Bir döngü kurma Do While Ücret < 100000 ' Ücret 100000 den küçük olduğunda Toplam = Toplam + Ücret Loop For...Next Deyimi Bir grup deyimi belli sayıda çalıştırarak (tekrar ederek) bir döngü oluşturur. Örneğin birden ona kadar (on kere) şu işlemi yap şeklinde. Özellikle bir döngü denetim değişkenin kullanıldığı (sayaç) bu döngü yapısı iç içe döngülerin de yapılmasını sağlar. For…Next döngüleri özellikle dizilerin işlenmesinde de yaygın olarak kullanılır. Yapısı: For sayaç = başlangıç To bitiş [ Step artırım ] [ifade bloğu] [Exit For] [ifade bloğu] Next [sayaç] Örnek: Birden yirmiye kadar sayıların toplamını alır: Sub Button31_Click () Dim Toplam As Double Toplam = 0 For I = 1 To 20 Toplam = Toplam + I Next I MsgBox "1’den 20’a kadar sayıların toplamı: " & Toplam End sub NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...] adresine bakınız. B. Karar Yapıları Karar yapıları If...Then...Else ve Select...Case deyimleriyle gerçekleştirilir. If...Then...Else deyimi belli bir deyimi ya da bir blok deyimi bir koşula bağlı olarak işletmeyi sağlar. Koşulun doğru olması True, yanlış olması False anlamına gelir. Select Case deyiminde ise özellikle bir karar değişkeninin aldığı değerlere göre değişik işlemlerin yapılması sağlanır. Karar yapılarının temelinde değerler arasındaki ilişkiler yatar. İlişkiler değerler arasındaki operatörlerle kurulur. Tablo: İlişki operatörleri Operatör Anlamı < Küçüktür <= Küçük eşittir > Büyüktür >= Büyük eşittir <> Eşit değildir = Eşittir And Ve Or Veya – Ya da Not Değil If...Then...Else Deyimi Klasik olarak kullanılan karar mekanizmasıdır. Eğer koşul sağlanıyorsa (if) bunu yap; yoksa şunu yap (else) gibi: Yapı: (1) If koşul Then işlem Yapı: (2) If koşul Then [işlem1] Else [işlem2] End If If-Then-Else yapısının birinci kullanım biçiminde genellikle basit ifadelere karşılık gelen ifadeler çözülür. Koşul doğruysa (True) Then'den sonraki deyim işletilir, değilse bu deyimler atlanır. İkinci kullanım biçiminde ise; daha karmaşık hesaplamalara ve kararlara karşılık gelen ifadeler çözülür. Bu yapıda koşul doğruysa işlem1 yerine getirilir, değilse Else'den sonra belirtilen işlemler yerine getirilir. Aşağıdaki örnekte; Ekrandan Inputbox ile alınan üç sayının en büyüğü bulunur: Private Sub Command1_Click() Dim Sayı1, Sayı2, Sayı3 As Double Sayı1 = InputBox("Birinci değeri giriniz") Sayı2 = InputBox("İkinci değeri giriniz") Sayı3 = InputBox("Üçüncü değeri giriniz") If Sayı1 > Sayı2 Then If Sayı1 > Sayı3 Then MsgBox "Sayı1 Enbüyük." ElseIf Sayı3 > Sayı2 Then MsgBox "Sayı3 Enbüyük." Else MsgBox "Sayı2 Enbüyük." End If End Sub Select Case Deyimi Bir değerin test edilmesini sağlayan ve yaygın kullanılan bir yapıdır. Select Case yapısı bir koşul ya da değişken için olası değerlerin değerlendirilmesini sağlar. Diğer bir deyişle bir ifadenin değerine göre bir ya da daha çok deyim grubunun (ifade bloğunun) işletilmesini sağlar. Yapısı (basit): Select Case test değeri Case değer1 deyim blok 1 Case değer2 deyim blok 2 End Select Select Case yapısı içindeki ilk deyim Select Case'dir. Ardından bir değeri olan test değişkeni yer alır. Bu değer bir sayı, string ya da fonksiyon olabilir. Ardından koşulların belirtildiği Case deyimleri yer alır. Örnek: Ücret hesabı Ücret= Val(Text1.Text) Select Case Ücret Case 1000 to 1100 Vergi = Ücret * 0.20 Case 1101 to 1200 Vergi = Ücret * 0.25 Case 1201 to 1300 Vergi = Ücret * 0.30 Case Else Vergi = Ücret * 0.40 End Select II. Gözgen Geçirme 1. Karar yapılarını açıklayın. 2. IF ve Select yapılarını birbiriyle karşılaştırın. Hangi durumlarda tercih edilebilir? 3. Döngüleri yarıda kesip çıkmak mümkün mü? Evet ise nasıl? DERS 6:the-sabotage.org Ders 6: Hata Denetimi Hata denetimini ve araçlarını açıklamak. I. Hata Denetimi Hata denetimi (troubleshooting) programda oluşan çalışma zamanı ve diğer kodlama hatalarının tanımlanması (teşhis) ve giderilmesi için yapılan çalışmalardır. Visual Basic, programların yazılması (derlenmesi ve çalıştırılması) sırasında karşılaşılan hatalara karşı geliştirilmiş bir hata bulma ve düzeltme (debugging) olanağına sahiptir. Programın çalıştırılması sırasında kendisinden kaynaklanan bir hata varsa, hata bildirilir. Bunun dışında çalışma zamanı hataları ise, programın çalışması sırasında beklenmeyen bir durum sonucu oluşur. Örneğin okunacak dosyanın olmaması gibi. Bu durumda program hata verir. İşte bu durumlara karşı alınan önlemlere hata denetimi denir. A. Çalışma Zamanı Hatalarının Kontrolü Çalışma zamanı hataları (run-time errors) programın çalışması sırasında oluşan hatalardır. Program hazırlanmış ve kullanıcıya sunulmuştur. Çalışma zamanı (run-time) hatalarına karşı herhangi bir önlem alınmazsa program hata verir ve kesilir. Diğer bir açıdan; bu durum kullanıcılar karşısında düşülebilecek en kötü durumlardan birisidir. Bu nedenle çalışma zamanı hatalarına karşı belli önlemler daha önceden alınmalıdır. Bu hatalar 1-1000 arasında hata kodu döndürürler. Bu hata kodları On Error deyimi ve Err nesnesi ile birlikte ele alınarak hataların değerlendirilmesi ve programın uygun biçimde yönlendirilmesi sağlanır. Tablo: Kontrol edilebilir bazı hatalar Kod Mesaj 3 Return without GoSub (GoSub'sız Return) 5 Invalid procedure call (geçersiz procedure çağırması) 6 Overflow (taşma) 7 Out of memory (bellek yetersiz) 9 Subscript out of range (dizi dışı) 10 This array is fixed or temporarily locked (dizi sabit ya da kilitli) 11 Division by zero (sıfıra bölme) 13 Type mismatch (tip uyumsuzluğu) 14 Out of string space (string alanı yetersiz) 16 Expression too complex (ifade çok karışık) 17 Can't perform requested operation (işlem işletilemiyor) 18 User interrupt occurred (kullanıcı kesmesi oluştu) 20 Resume without error (hatasız devam) 28 Out of stack space (yetersiz stack alanı) 35 Sub, Function, or Property not defined (… tanımlanmamış) 47 Too many DLL application clients (çok sayıda DLL uygulama) 48 Error in loading DLL (DLL yüklemede hata) 49 Bad DLL calling convention (DLL hatası) 51 Internal error (iç hata) 52 Bad file name or number (yanlış dosya) 53 File not found (dosya bulunamadı) 54 Bad file mode (kötü dosya biçimi) 55 File already open (dosya zaten açık) 58 File already exists (dosya zaten var) 59 Bad record length (kötü kayıt uzunluğu) 61 Disk full (disk dolu) 62 Input past end of file (dosya sonunu geçme) 63 Bad record number (kötü kayıt numarası) 67 Too many files (çok fazla dosya) 68 Device unavailable (aygıt kullanılamaz durumda) 70 Permission denied (izin yok) 71 Disk not ready (disk hazır değil) 74 Can't rename with different drive (başka bir sürücü adıyla değiştirilemez) 75 Path/File access error (dosya adı hatası) 76 Path not found (yol bulunamadı) 91 Object variable or With block variable not set (nesne değişkeni düzenlenmemiş) 92 For loop not initialized (döngü başlatılmamış) 93 Invalid pattern string (yanlış string düzeni) 94 Invalid use of Null (Null yanlış kullanılmış) .... .................... B. On Error Deyimi Hata oluşumunda; mesaj vermek ve programın kontrolünü sağlamak için belli bir program parçasının işletilmesini sağlanabilir. Bu işlem için hata kontrolüyle ilgili olarak bir program bloğunun yazılmasını sağlanır. Yapısı: On Error GoTo satır On Error Resume Next On Error GoTo 0 On Error deyiminin parametreleri şunlardır: Parametre Açıklama Go To 0 Procedure'daki hata kontrolünü iptal eder. GoTo satır / etiket Hata kontrolü satırının belirtilen satırdan ya da etiketten başlatılmasını sağlar. Resume Next Hatanın ardından programın bir sonraki deyimi işleyerek programı çalıştırmayı sürdürmesini sağlar. Eğer programcı, programında bir On Error deyimi kullanmaz ve olası hataları kontrol altına almazsa; hata oluştuğunda program çalışma zamanı içinde hatayı verir ve kesilir. Program içinde bir hata denetimi yapılırsa; hata oluştuğu anda program kontrolü, hata kontrolü kısmına atlar. Hata denetimi; Resume, Exit Sub ya da Exit komutuna kadar aktif kalır. Hata denetiminin ardından hatanın tanımlanması için Err nesnesinin Number özelliği kullanılır. Örnek : Sıfıra bölünme hatalarına karşı tuzak Aşağıdaki örnekte OnError ile 11 (Division by Zero) hatası kontrol edilmektedir: Sub Button32_Click () On Error GoTo HataKontrol A = 5 B = 0 Sunuc = A / B Exit Sub 'burada programa son verilir. HataKontrol: Select Case Err.Number Case 11: Mesaj = "Sıfıra bölünme hatası oluştu!!!" End Select MsgBox Mesaj Resume Next End Sub NOT: Bu dokümanlar Faruk Çubukçu tarafından hazırlanmıştır. Ticari amaçlı olarak kullanılmaz. Daha fazla bilgi için [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...] adresine bakınız. II. Hata Düzeltme Araçları Bir Visual Basic programı geliştirirken ya da programın çalışması sırasında bir hata ile kesilmesinden sonra hatanın bulunması ve giderilmesi için belli araçlar kullanılır. Bunların başında Debug (Hata Giderme) araç çubuğu gelir: Şekil: Debug araç çubuğu Debug araç çubuğunun kullanılması için programın kesilmesi gerekir. Kesme (break) işlemi hata sonucunda ya da manuel olarak da yapılabilir: Şekil: Break düğmesi Programın kesilmesi ya da Break düğmesine tıklanarak program debug moda alınır. İşte bu durumda programcı Visual Basic hata giderme araçlarını kullanır. A. Kesme Noktası (Toggle Breakpoint) Programın bir yerine gelip durmasını istiyorsunuz. Ve o aşamada değerleri kontrol edeceksiniz. İşte bu olanağı size kesme noktası sağlar. Kod içinde kesme noktası ile işaretlenen satır işletilmeden önce program durur. Kesme noktası genellikle programı belli bir yerde durdurup o aşamada bazı değişkenlerin değerlerinin kontrol edilmesini sağlar. Bu işlem için araç çubuğundaki Toogle BreakPoint düğmesi kullanılır. Tekran tıklanarak kesme noktası kaldırılır. B. Bilgi Pencereleri (Locals Window, Immediate Window ve Watch Window) Program kesildikten sonra; Procedure içinde bir değişkenin ya da bir ifadenin seçilerek değerinin ne olduğuna bakılmak istenirse o zaman anlık izleme penceresi (instant watch) kullanılır. Locals Window Program kesildiğinde bulunulan procedure içinde tanımlanan bütün değişkenlerin değerini verir: Expression sütünunda değişkenlerin adları listelenir. Bütün class modüllerinde buradaki ilk değer <Me> değeridir. Bu değerin üzerine tıklanarak genişletilir. Value sütünunda ise değişkenin değeri görünür. Bu değerin üzerinde çift tıklanarak değişiklik yapılabilir. Immediate Window Program kesildikten sonra; procedure içinde bir değişkenin ya da bir ifadenin seçilerek değerinin ne olduğuna bakılmak istenirse o zaman anlık izleme penceresi kullanılır. Anlık izleme penceresinde değişkenlerin ya da ifadelerin değerlerini göstermek için (Print) deyimi ya da ? kullanılır. Ayrıca istenirse kod satırından Immediate Window ekranına sürükleme yapılır. Örnek: ? toplam Gözden Geçirme 1. Programınızda daha az hata ile karşılaşmak için neler yaparsınız? 2. Çalışma zamanı hatalarına karşı neler yapılır? Açıklayın. 3. Resume deyiminin görevi ve parametreleri nelerdir? 4. Err nesnesinin görevi ve metotları nelerdir? DERS 7:the-sabotage.org Ders 7: Veri Tabanı İşlemleri Amaçlar: Veritabanı kullanmını açıklamak. ADO veri erişim yöntemini açıklamak. Veritabanına yazmak ve okumak. SQL Server ve Access veritabanlarına erişim. I. ADO Veri Erişim Yöntemi Visual Basic uygulamalarına baktığınızda çoğunun veritabanı uygulaması olduğunu görürsünüz. Bu nedenle Visual Basic 6.0 ile veritabanı uygulaması geliştirmek için çok sayıda yenilikler yapılmıştır. Bu yeniliklerin başında yeni veri erişim yöntemi ADO (ActiveX Data Objects) gelir. NOT: ADO ve Visual Basic, Microsoft firmasının tescilli markasıdır. Şekil: ADO ve veri erişim nesnelerinin karşılaştırılması NOT: ADO konusunda ayrıca sitemizin ASP kursuna bakınız. A. ADO'yu Kullanmak ADO nesnelerini kullanmadan önce, diğer bir deyişle programınızda ADO kullanarak veritabanı işlemlerini yapmadan önce ADO nesnelerini ve referanslarını Visual Basic ortamına eklemeniz gerekir. Project menüsünden References komutu kullanılır. Microsoft ActiveX Data Objects 2.0 ya da daha ilerisi seçilir. İPUCU: ADO versiyonları ve Visual Basic Service Pack'leri konusunda daha geniş bir araştırma yapınız.[Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...] Örneğin formlarınızdaki metin kutularını ya da gridleri veritabanına bağlamak için ADODC bileşenin eklenmesi gerekir. Bu durumda ortama ADO kontrollerini de eklemeniz gerekir. Project menüsünden Components komutu kullanılır. Microsoft DataGrid Control 6.0 seçilir. Ayrıca Microsoft ADO Data Control 6.0'ında eklenmiş olması gerekir. OK düğmesine tıklanarak kontrol projeye eklenmiş olur. Ardından ADO DC üzerinde sağ tıklayarak elde ettiğiniz iletişim kutusunda veritabanı erişiminin birçok işlemini yapabilirsiniz. Geriye bir tek şey kalır, o da verileri görüntüleyecek olan DataGrid'in DataSource özelliğini ADODC olarak düzenlemek. 1. Form Üzerindeki Kontrolleri ADO Data Control'e Bağlamak ADO Control aracılığıyla veri kaynağı ile bağlantı kurulduktan sonra, TextBox, ComboBox, ListBox, Grid gibi kontrollerle birlikte kullanılabilir. Bir kontrolün tasarım zamanında ADODC'e bağlanması için DataSource özelliğinin düzenlenmesi gerekir. Yine aynı şekilde bu işlemler çalışma zamanında da yapılabilir. Kullanılan kontrole göre kullanılan özellikler değişir. Örneğin bir TextBox kontrolünü ADODC ile ilişkilendirerek veri alışverişi yapmasını istersek DataField özelliği kullanılır: Text1.DataField = "ADI " Set Text1.DataSource = ADODC1 Aşağıdaki örnekte DataGrid kontrolü ile Access veritabanındaki veriler bir gride bağlanır. Bu işlem için: Project menüsünden Components komutu kullanılır. Microsoft DataGrid Control 6.0 seçilir. Ayrıca Microsoft ADO Data Control 6.0'ında eklenmiş olması gerekir. OK düğmesine tıklanarak kontrol projeye eklenmiş olur. Private Sub Command1_Click() ADODC1.ConnectionString ="Provider=Microsoft.Jet.OLEDB.3.51; Data Source=c:\my documents\adresler.mdb" ADODC1.CommandType = adCmdTable ADODC1.RecordSource = "ogrenciler" Set DataGrid1.DataSource = ADODC1 End Sub B. ADO Nesneleri ADO veri erişim sistemi oldukça basit bir nesne modeline sahiptir. Bu modelde birçok nesne seçimli olarak (birlikte) ya da bağımsız olarak kullanılabilir. Şekil: ADO Nesneleri Tablo: Tablo:ADO modelinde yer alan nesneler Nesne Amacı Command Bir veri kaynağı üzerinde bir query ya da deyimi işletir. Connection Bir veri kaynağına doğrudan bağlantı yaratır. Error Veri kaynağından bir hatayı döndürür. Field Bir kayıt içindeki bir alan (kolon). Parameter Bir komut için parametre tutar. Recordset Bir komut tarafından üretilen (dönen) verileri içerir. Örneğin bir Access veritabanına bağlantı kurmak için şu nesneler kullanılır: Veri: ADRESLER.MDB Connection: MUSTERI.MDB Command: Select * from musteriler Recordset: elde edilen bilgi. Aşağıdaki örnekte sadece Recordset nesnesi ile bir Microsoft Access veritabanına erişilmektedir: Dim rst As New ADODB.Recordset rst.Open "Select * From musteriler", "DSN=MUSTERI", adOpenKeyset Set DataGrid1.DataSource = rst NOT: Yukarıdaki kodda yer alan DSN tanımlaması işletim sistemi tarafından yaratılabilir. Control Panel'de ODBC tanımlamalarına bakınız. 1. RecordSet Nesnesinin Kullanımı Aşağıdaki örnekte bir Recordset nesnesi ile Access veritabanındaki veriler DataGrid üzerinde gösterilmektedir: Dim rst As New ADODB.Recordset rst.Open "Select * From musteriler", "DSN=MUSTERI", adOpenKeyset Set DataGrid1.DataSource = rst 2. Connection Nesnesi Connection nesnesi bir veri kaynağına bağlantı kurmak için kullanılır. Connection nesnesi sayesinde bir data provider aracılığıyla (OLE DB) bir komut işletilir. Connection nesnesi ile ConnectionString özelliği kullanılır. Bu özellik bağlanılacak veri kaynağını gösterir. Open metodu ise bağlantıyı açmak için kullanılır. Dim cnn As New ADODB.Connection cnn.Open "MUSTERI" 3. Command Nesnesi Command nesnesi bir bağlantı üzerinde işletilecek özel bir query ya da komut yaratmak için kullanılır. Command nesnesinin ana amacı stored procedure'ların ve parametreli komutların çalıştırılmasını sağlamaktır. Bir komut nesnesi bir bağlantı üzerinde bağımsız olarak yaratılır ve işletilmeden önce veri kaynağına bağlı olan aktif connection ile ilişkilendirilir. Bir komut herhangi bir recordset döndürmeden de kullanılabilir. Örneğin aşağıdaki program parçasında bir UPDATE komutu veritabanı üzerinde işletilmektedir. Dim cnn As New ADODB.Connection With cnn .CursorLocation = adUseClient .ConnectionString = _ "c:\my documents\musteri.mdb" .Provider = "Microsoft.Jet.OLEDB.3.51" .Open End With strSQL = "UPDATE BORCU SET BORCU = BORCU * 1.15" With cmd Set .ActiveConnection = cnn .CommandText = strSQL .Execute intRecordsAffected End With 4. Recordset Nesnesi Recordset nesnesi ADO içinde en çok kullanılan nesnedir. Recordset nesnesi veri kaynağından gelen verileri içerir. Bir komut ya da query çalıştırıldığında elde edilen kayıtları recordset nesnesi içerir. Recordset nesneleri genellikle aktif connection ve command ile oluşturulur. Bunun dışında Recordset nesneleri bağımsız olarak da kullanılabilir. Örnek: Recordset tanımlaması Dim rst As New ADODB.Recordset rst.Open "Select * From Ogrenciler", "DSN=ADRESLER", adOpenKeyset, adLockOptimistic Örnek: Bir recordset'in DataGrid üzerinde gösterilmesi Dim cnn As New ADODB.Connection Dim cmd As New ADODB.Command Dim rst As New ADODB.Recordset Cnn.Open "ADRESLER" cmd.CommandText = "Select * From musteriler" Set cmd.ActiveConnection = cnn rst.CursorType = adOpenDynamic rst.LockType = adLockOptimistic rst.Open cmd Set DataGrid1.DataSource = rst II. Gözden Geçirme 1. Recordset nedir? 2. Bir recordset nasıl yaratılır? 3. Bir recordset'e ekleme yapmak için hangi metot kullanılır? 4. ADO nesneleri nelerdir? III. Visual Basic Uygulamas ER-FA ecza deposu bin kadar üyesine ilaç toptan ilaç pazarlamak üzere kurulmuştur. ER-FA ecza ilaç siparişlerini takip etmek için bir Visual Basic uygulaması geliştirmek istemektedir. Yapılacak ana işlemler: Visual Basic programlama ortamında ana menü ve veri giriş formlarını tasarlamak. Veritabanını tasarlamak. Veri girişi ve raporlama için kodlar yazmak. Yapılacak işlemlerin ayrıntıları: Visual Basic formu olarak veri giriş formlarını tasarlamak. Microsoft Access ya da SQL Server üzerinde veritabanlarını tasarlayın. Veri girişi sayfalarında form validation (form alanlarının kontrolü) yapın. KAYDET düğmeleriyle verilerin veritabanına kaydını yapın. Veritabanı işlemlerini ADO kullanarak yapın. İstenen raporlar için Data Envirinment ve Data Reports bölümlerinden yararlanın. Sipariş sisteminin yanı sıra bir süre sonra ER-FA ecza deposu müşterileri için bir anket yapmaya karar vermiştir. Anketler de veritabanına bir metin bilgisi olarak eklenecektir. Bu koşullar altında; tabloları ve kayıtların birbiriyle bütünlüğün sağlayacak olan olası ilişkileri tanımlayın. Bilgiler: STOK KARTI MUSTERİ KARTI SİPARİŞ ANKET Kodu Kodu Tarih Kodu Tanımı Unvanı Sip No Anket Metni Grup Kodu Grubu Mus Kodu Satıcı Firma Adresi Stok Kodu Birimi İlçesi Birimi Birim Fiyatı İli Adet KDV Tel Taşıyıcı Firma Depo Kodu Fax Siparişi Alan Paket Kodu Vergi Dairesi Açıklama Vergi No Resmi Kredisi Hesap Açılış Tarihi Resmi Web sitesi PERSONEL (SİPARİŞİ ALANLAR) TAŞIYICI FİRMA Kodu Kodu Adı Soyadı Ünvanı Adresi Adresi İli İli İşe Giriş Tarihi Güzergah Notlar: Genellikle kodu alanlarını Primary Key yapın. Birim fiyatlar genellikle “Adet” olarak düzenlenecektir. Onu Default yapın. Fiyat ve adet bilgilerine mutlaka pozitif bir değer girilecektir. Sipariş tarihi “günün” tarihi olarak otomatik olarak düzenlenecektir. Grup kodları, iller ve diğer seçenekli girişler bir Combo box olarak düzenlenecektir. Bu veriler sabit ya da veritabanından gelerek doldurulabilir. 1. Veritabanını Yaratın ve Tabloları Tasarlayın. Yukarıdaki bilgiler temelinde SIPARIS-TAKIP veritabanını yaratın. Ardından tabloları tasarlayın. 2. İlişkileri Kurun Kodu alanları PK olduktan sonra ilgili tablolar arasındaki ilişkileri kurun. Müşteri-Sipariş Müşteri-Anket Stok-sipariş Personel-sipariş Taşıyıcı firma-sipariş arasındaki ilişkileri kurun. 3. Örnek veriler girin: Test amaçlı örnek veri girin. 4. Ana Menü Yapın Programın veri giriş kartlarına yönlenmesini sağlayacak ve ilk olarak çalıştırılacak bir ana menü formu hazırlayın. Yapılacaklar: Bir ana menü formu geliştirin. Bütün veri giriş formlarınaa ulaşacak düğmeler yerleştirin. Bütün veri giriş formlarında dan ana menüye dönüşü sağlamak için Exit düğmeleri yapın. 5. Veri Giriş Formları Yukarıdaki tablolara veri girişi için Visual Basic formları hazırlayın. İstenen formlar Yapılacaklar: Stok kartı için columnar bir form Müşteri kartı için columnar bir form Anket için columnar bir form Personel için columnar bir form Taşıyıcı için columnar bir form Sipariş için tabular bir form Yapılacaklar (öneriler) Müşteri formu için olası alanlara combo box ekleyin. Müşteri formu için olası alanlara Validation Rule ekleyin. Müşteri formu için form zeminini değiştirin. Müşteri formunun altına kendi hazırladığınız bir bitmap dosyayı koyun. Müşterinin Web sitesi bilgisini tablo tasarımına ekleyin. Daha sonra bunun form üzerinden girilmesini sağlayın. Web sitesi alanına [Linkleri görebilmek için üye olmalısınız. Üye olmak için tıklayınız...] girin. Ardından üzerine tıklayarak ona ulaşmaya çalışın. Sipariş formunun alt başlık kısmına adet toplamı alın. Sipariş formunda birim fiyat ve tutarın görünmesini sağlayın. Sipariş formunun alt başlık kısmına tutar toplamı alın. Ayrıca altına KDV’li toplamı hesaplattırın. Sipariş formunda taşıyıcı firma ve siparişi alan müşterinin combo’larla seçilmesini sağlayın. NOT: Veri girişi için form üzerinde metin kutuları (text box) ve gridler kullanın. 6. İstenen Sorgular/Raporlar: Müşterilerin ili içinde grubu, grubu içinde alfabetik sırada ünvanlarının yer aldığı liste. Verilen iki tarih arasında (parametrik) siparişlerin adet ve tutarları? Verilen iki tarih arasında ve belli bir müşteri konu için siparişlerin adet ve tutarları? Verilen iki tarih arasında ve belli bir müşteri ve siparişi alan eleman olarak siparişlerin adet ve tutarları? Verilen iki tarih arasında, belli bir müşteri, belli bir mal ve siparişi alan eleman olarak siparişlerin adet ve tutarları? En yüksek sipariş alan elemanı bulmak için elemanların sipariş toplamlarını gösteren bir sıralı liste (azalan). Hiç siparişi olmayan müşterilen alfabetik sırada listesi. İli “İzmir” olan ve telefon numarasının ilk karakteri 4 olan müşterilerin alfabetik sırada listesi. İli “İzmir” ya da “Manisa” olan müşterilerin il içinde alfabetik sırada listesi. Sipariş adedi olarak en çok mal taşıyan taşıyıcı firma? Sipariş alan elemanların toplam (tutar) siparişleri. Stokta Birim fiyatlara %10 zam. Sadece belli gruptan olan stokların birim fiyatlarına %10 zam. Stokların depo kodunun ilk iki karakteri ile tanımlarının ilk iki karakterinin birleşiminin listesi. Sipariş toplamlarının taşıyıcı firma güzergahlarına göre listesi. |
|
|
|
![]() |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
|
|