10 Temmuz 2013 Çarşamba

Visual Basic Eğitimi amacı, hızlı uygulama geliştirme aracı visual basic'i öğretmektir. Visual Basic Eğitimi ile masaüstü ve veritabanı uygulamalarınızı ne kadar kolay geliştirebileceğinizi göreceksiniz.
Visual Basic Eğitimi ile kontrolleri, modülleri, formları, veritabanı işlemlerini öğreneceksiniz. Visual Basic Eğitimisonrası, potansiyelinizi ortaya çıkarıp kullanacaksınız.

DİZİLER (VISUAL BASIC)






DİZİLER

Diziler birbirleriyle ilgili nesne grubunu içeren değişkenlerdir. Aynı tür bilgileri bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın avantajı aynı tür bilgiler bir listede tutularak daha hızlı işlem yapılabilmesi sağlanmış olacaktır. Bir dizi tanımlamak için normal veri tanımlama komutu olan Dim, Public, Private komutlarını kullanılır.



Örneğin
Dim sayıDizisi(7) As Integer 8 elemanlı (0-7 arası) bir sayı dizisi
Dim byteDizisi(4 To 32) As Byte 29 elemanlı bir sayı dizisi
Public metinDizisi(1 To 10) As String 11 elemanlı metin dizisi



Diziler sabit boyutlu(dinamik) veya değişken boyutlu(static) olabilirler.

Sabit boyutlu dizilerde dizinin eleman sayısı değişmez, oysa değişken boyutlu dizilerde dizinin eleman sayısı ihtiyaca göre değişebilir.



Peki değişkenin veya dizinin statik ya da dinamik olduğunu nereden bileceğiz?




Değişkenler

Diziler (Array)




Statik

1. Declarations kısmında tanımlanan değişkenler.


2. Static ifadesiyle tanımlanan değişkenler.

1. Declarations kısmında boyutuyla tanımlanan diziler.

Örneğin:
Dim Dizi(1 To 45)
2. Static ifadesiyle tanımlanan yerel diziler.




Dinamik

Yerel (local) değişkenler.

1. Declarations kısmında boyutsuz olarak tanımlanan diziler.

Örneğin:
Dim MyArray()
2. Dim veya Redim ifadeleri kullanılarak tanımlanan yerel diziler.




Diziler alt yordamlarda argüman olarak kullanılabilir.
Dim Sira_No( ) As Integer ‘ Dinamik dizi
Dim Sira_No(255) As Integer ‘ Static dizi 256 Integer içerir





Statik Diziler

Dizinin kaç elemandan oluştuğu, değişken isminden sonra parantez içine yazılır.

Dim değişken_adı(İndis) As Veri_Tipi = atanacak_bilgi

Dim x(5) As Integer ‘ 6 elemanlı bir dizidir. Yani a(0), a(1),a(2),...,a(5) şeklinde elemanları vardır.



Herhangi bir fonksiyon veya alt programda dizi tanımı “Dim” deyimi ile yapılamaz, sadece General-Declaratıons kısmında veya modül içinde tanımlanabilir.

Eğer bir fonksiyon veya alt program içinde dizi tanımlanacaksa “ReDim” veya “Static” deyimleriyle tanımlanmalıdır.



VBA'da dizi şu şekildedir .

Örnek:
Dim ad(2) As String
Dim no(2) As Integer
ad(0) = "Seçkin"
ad(1) = "Ali"
ad(2) = "Ahmet"
no(0) = 13
no(1) = 35
no(2) = 25



Bu örnek'te ad ve no olmak üzere iki adet dizi tanımlanmaktadır. ad dizisi string türünde bilgileri tutacak ve no dizisi ise integer türündeki bilgileri saklayacaktır. Görmüş olduğunuz gibi dizilere bilgi atama şekli dizi_adı(indis_sırası)=atanacak_bilgi şeklindedir.

Burada dizi indisleri sıfırdan başlayarak tanımlama yaparken bizim belirttiğimiz değere kadardır.

Yani bizim bu dizilere atayabileceğim veri sayısı diziyi tanımlarken belirttiğimiz indis değerinden bir fazla olacaktır.
Eğer değer atama yaparken belirttiğimiz sınırların dışına çıkarsak hata oluşur.



Başka bir örnek: Dizi elemanlarına değer atamak için
Dim isim(1 To 10) As String

Private Sub CommandButton1_Click()
isim(1) = "Murat"
isim(2) = "Ali"
isim(3) = "Salih"
End Sub
veya
Dim isim(1 To 10) As String

Private Sub CommandButton1_Click()
isim(1) = Text1.Text
isim(2) = Text2.Text
isim(3) = Text3.Text
End Sub



Bu örnekte ise isim dizisinin elemanlarına döngü içinde değer atanıyor ve listeye diziliyor.

Dim isim(1 To 10) As String

Private Sub CommandButton1_Click()
For i = 1 To 10
isim(i) = "İsim numarası " & i
ListBox1.AddItem isim(i)
Next i
End Sub



Dizilere değer atarken dizi sınırlarını kontrol etmekle olası bir hatayı önlemiş oluruz.

Bir dizinin sınırlarını belirlemek için;

Dim a(3 to7) ‘ile ilk elemanı a(3) ve son elemanı a(7) olan bir eleman tanımlanabilir.

Dim Sira(4) As String ‘aslında bu şekildeki bir dizi de sınırlıdır. Nasıl mı 0 ile 4 arasında



Bazen de dizilere değer atarken hangi elemandan başlayacağını belirtebiliriz.

Bunun için ise; Option Base deyimini kullanırız. Option Base dizilerin başlangıç sayısını belirtmekte kullanılır. Option Base 0 ve 1 değerini alabilir.


Option Base 0: Böyle bir dizi 0 dan başlayan ve 3 te biten elemanlara sahiptir ilk elemanının numarası 0 dır ve toplam 4 elemanı vardır.

Yani Option Base 0 yazmak ile hiç option base kullanmamak arasında bir fark yoktur.
Option Base 1: Eğer diziyi sıfırdan değil de bir den itibaren başlatmak istersek diziyi tanımlamadan önce Option Base 1 satırını eklemeliyiz..

Örnek:

Option Base 1



Dim sayi(5) As Integer



Private Sub UserForm_Activate()

sayi(1) = 100

sayi(2) = 200

End Sub



Private Sub CommandButton1_Click()

TextBox1.Text = sayi(1) + sayi(2)

End Sub



Bu örnekte görüldüğü gibi projenin "General Declarations" kısmında sayi() dizisi tanımlanıyor. Bu dizi tanımlanmadan önce dizi indislerinin 1 den itibaren başlayacağını belirten Option Base 1 satırı koda dahil edilmiştir. UserForm1 yüklendiğinde bu dizinin ilk elemanına 100 sayısı ikinci elemanına 200 sayısı atanıyor. Eğer kullanıcı CommandButton1 isimli butona tıklarsa dizinin ilk ve ikinci elemanları toplanarak Form üzerinde TextBox1 adlı nesnenin Text özelliğine atanıyor. Yani TextBox1'in bu sayıların toplamını göstermesi sağlanıyor.



Dinamik Diziler

Değişken boyutlu (dinamik) dizilerde dizinin eleman sayısı ihtiyaca göre değişebilir. Dinamik diziyi tanımlarken parantez içi boş bırakılır. Bu tip dizilerde kullanılacak yer sayısında bir sınırlama yoktur. Bu tip diziler ilk başta aşağıdaki şekilde görüldüğü gibi bir tanımlamaya ihtiyaç duyarlar.
Dim dizi_adı( ) As Veri_Tipi
Örnek kullanım:

Dim dnmogrenci() As String



Diziler önce tanımlanıp, sonradan da genişletilebilir. Dim, Public veya Private komutlarıyla tanımlanmış bir dizi ReDim komutuyla genişletilebilir veya daraltılabilir. Böyle dizilere Dinamik Diziler denir. Dizi elemanlarının değerleri korunmak istenirse ReDim Preserve komutu kullanılır.
Hiçbir prosedür bölgesinde kalmayan yani global olan yere şöyle bir kod yazılabilir.
Dim Sayılar() As Long
Sonradan bir boyut verilebilir.
Sub BoyutVer(Boyut As Integer)
ReDim Sayılar(0 To Boyut) As Long
End Sub



Dinamik dizilerin eleman sayısını istediğiniz herhangi bir anda “ReDim” deyimi ile dizinin eleman sayısını değiştirebilirsiniz.

ReDim dizi_adı(boyut ) As Veri_Tipi
Örnek kullanım:

Redim dnmogrenci(20)



“ReDim” deyiminin her kullanılışında dizinin içeriği silinir. Bunu önlemek için “Preserve” komutu kullanılır;

ReDim Preserve s(boyut) As Veri_tipi

Örnek kullanım:

ReDim Preserve dnmogrenci(20)



Bu şekilde dizinin daha önceki elemanları korunur. Artık bu veri dizisini projemiz içinde kullanabiliriz. Verileri korumak istiyorsanız Preserve komutu önemlidir.



Örneğin,

Dim a() As String ‘Decleration kısmına yazacaksınız.



Private Sub CommandButton1_Click()

ReDim a(0 To 3) As String

a(0) = "Ahmet"

a(1) = "Mahmut"

a(2) = "Muhammed"

a(3) = "Mustafa"

End Sub

Yukarıda 4 elemanlı yapılan a dizisinin elemanlarına değerler verildi.

Private Sub CommandButton2_Click()

ReDim a(0 To 5) As String

a(4) = "Ali"

a(5) = "Veli"

End Sub



ReDim a(0 To 5) As String

Kodu

a(0), a(1), a(2), a(3) elemanlarının değerlerini sıfırladı. Bunu engellemek için (sıfırlanmamasını sağlamak için) CommandButton2 ye tıklandığında şöyle bir kod olması gerekir.

Private Sub CommandButton2_Click()

ReDim Preserve a(0 To 5) As String

a(4) = "Ali"

a(5) = "Veli"

End Sub

Yani a(0), a(1), a(2), a(3) dizisinin değerleri saklı kalmış oldu.


Başka bir örnek:

Kodlar Kodların Açıklaması

Option Base 1 ‘Dizi 1 den başlasın

Dim s() As String ‘s değişkeni dinamik dizi olarak Decleration kısmında tanımlanıyor.



Private Sub CommandButton1_Click()

ReDim s(3) As String s dizisi CommandButton1 in klik olayında s değişkeninin dizi boyutu silinir ve yeniden boyutlandırılır. (istendiği anda)

s(1) = "Merhaba" s dizisinin 1. elemanına “Merhaba” sözcüğü atanıyor.

s(2) = "Mahmut" s dizisinin 1. elemanına “Mahmut” sözcüğü atanıyor.

s(3) = "Nasılsın" s dizisinin 1. elemanına “Nasılsın” sözcüğü atanıyor.

TextBox1.Text = s(1) + s(2) + s(3) TextBox ta dizi elemanları birleştirilerek gösteriliyor.

End Sub



Private Sub CommandButton2_Click()

ReDim Preserve s(5) As String s dizisi ise önceki prosedürde s(3) şeklinde boyutlandırılmıştı. Burada s(3) saklı kalmak şartı ile tekrar boyutlandırılıyor.

s(4) = "Ahmet"

s(5) = "İyi misin"

TextBox1.Text = s(4) + s(5)

End Sub



Not: Sadece Redim ifadesini kullanmak da dizileri boyutlandırır. Preserve parametresinin kullanım sebebi, ise diziye atılmış eski verileri korumaktır.
Redim arrSh(y) demiş olsaydık, döngünün ilk adımlarında yüklenen sayfa adları, döngünü diğer adımlarında silinecekti. Preserve ile, arrSh'yi tekrar boyutlandırırken, eski veriler aynen kalmaktadır.

Yani Redim Preserve arrSh(2) dediğimizde, örneğin;
Arrsh(0) ->Sayfa1
ArrSh(1) ->Sayfa2
ArrSh(2) ->Sayfa3 değerlerini saklamakla beraber,

Redim arrSh(2) dediğimizde;
ArrSh(0) ->""
ArrSh(1) ->""
ArrSh(2) ->Sayfa3 dizi atamaları gerçekleşir

Bu tip dizilerde ise dizinin eleman sayısını program akışı içerisinde kontrol edebiliyoruz bunu ise diziyi Dim Sayilar() as Integer şeklinde dizinin eleman sayısı hakkında herhangi bir değer vermeden belirttikten sonra ReDim Sayilar(10) as Integer şeklinde dizinin eleman sayısını program akışı esnasında tanımlıyoruz. Ancak diziyi yeniden boyutlandırırken unutulmaması gereken nokta dizinin içindeki verilerin silineceğidir. Eğer verilerin silinmemesini istiyorsak diziyi yeninden boyutlandırırken ReDim Preserve Sayilar(10) As Integer şeklinde belirtmemiz gerekir. Şimdi buraya kadar öğrendiklerimizi bir örnekle pekiştirelim.

Örnek 1: Girilen 10 tane sayının toplamını ve ortalamasını veren örnek program




Yukarda ki örnekte bilmediğimiz hiç bir komut olmadığı için programın satır satır açıklamasını yapmayacağım onun yerine sadece ekran görüntülerini vereceğim.




Yukarda ki resimlerden de anlaşılacağı üzere 10 adet sayıyı teker teker girdiğimizde programımız bize bu sayıların toplamını ve ortalamasını verecektir.




Örnek 2 : Şimdi de yukarda ki örneğimizi aktif bir dizi ile daha etkileşimli hale çevirelim .




Bu örneğin uygulamasını da sizlere bırakıyorum.



Çok Boyutlu Dizi Değişkenlerin Tanımlanması
Dim Tablo(4,3) As Integer
Dim DersSonuçları(3,3,1) As Integer



Yukarda ki tanımlama ile çok boyutlu diziler yaratmış olduk Dikkat ettiyseniz her boyuta ait index numarası birbirinden virgülle ayrılarak diziler boyutlandırılabiliyor. Bu konuyu her zaman yaptığımız gibi bir örnekle açıklayalım




Etiketlerin (Label) ve Düğmelerin başlıklarını VB 'nin sol tarafındaki "Properties" Penceresinde ki "Caption" değerine yeni başlığı yazarak değiştirebiliriz.



Bileşenleri formumuza yukarda ki gibi yerleştirdikten sonra Matematik dersi için koyduğumuz 3 tane "Text Box" 'ın adını VBA 'nın sol tarafındaki "Properties" Penceresinde ki "(Name)" değerini değiştirerek sırası ile "Matematik1", "Matematik2" ve "Matematik3" yapalım bu işlemi diğer dersler içinde tekrarlayalım daha sonra "Ortalaması" başlıklı Labellerimizin hepsinede "Ortalama" adını verelim bu sırada VBA bize "You have already a control named 'Ortalama'. Do you want to create a control array?" diyerek bir kontrol dizisi oluşmak isteyip istemediğimizi soracak bu soruyu "Evet" diye cevaplandırarak bir kontrol dizisi oluşturalım(*) "Ortalama" başlıklı düğmemize çift tıklayarak aşağıda ki kodları yazalım.




Yukarda ki örneğimizde derslere ait notlar dizimize aktarılıyor daha sonra ise dizimizde ki notları "For ...Next" döngüsü ile kod tekrarı yapmadan ortalamasını alıp bunu Ortalama isimli kontrol dizimizde ki etiketlerimiz de (Label) görüntülüyoruz.

Dizi İçin Sınırlar :

VBA 'da dizi için alt ve üst sınırlar belirleyebiliriz bu sınır 0 ve pozitif sayılar olabileceği gibi negatif sayılarda olabilir.

Örneğin

Dim Dizi1(1 To 20) As Integer

Dim Dizi2(0 To 5) As String

Dim Dizi2(-10 To 10) As Byte



Dizi elemanları şu şekildedir.

Dim Boyut(1 To 2, 1 To 3)= Dizi elemanları Boyut(1,1) Boyut(1,2) Boyut(1,3) Boyut(2,1) Boyut(2,2) Boyut(2,3)



Dizilerde LBound ve UBound Fonksiyonları :

İstenilen bir dizinin belirtilen boyutunun alt ve üst sınırlarının ne olduğunu öğrenmemize yarar örneğin;

Private Sub CommandButton1_Click()

Dim Dizi(-5 To 15, -10 To 20) As Integer

MsgBox "1. Boyutunun Alt Sınırı : " & LBound(Dizi, 1)

MsgBox "1. Boyutunun Üst Sınırı : " & UBound(Dizi, 1)

MsgBox "2. Boyutunun Alt Sınırı : " & LBound(Dizi, 2)

MsgBox "2. Boyutunun Üst Sınırı : " & UBound(Dizi, 2)

End Sub



Dizilerde Tür Tanımlamaları

Bir modüle (Decleration kısmına) tip tanımlayalım.

Type Ogrenci

Ad As String

Soyad As String

No As Integer

Sinif As String

GectigiDersler() As String 'Bu bir, tür içindeki dinamik dizidir.

End Type

Bu tür içindeki dinamik diziyi herhangi bir prosedür içinde genişletebilirsiniz.

Private Sub CommandButton1_Click()

Dim Mahmut As Ogrenci

ReDim Mahmut.GectigiDersler(0 To 4) As String

End Sub

gibi.

veya kendi tanımladığınız türü de dizi olarak kullanabilirsiniz.

Sub TürüDiziYap()

Dim Mahmut(0 To 8) As Ogrenci

End Sub

türünüzü dinamik olarak da tanımlayabilirsiniz.

Dim Mahmut() As Ogrenci



Private Sub cmdGenislet_Click()

ReDim Mahmut(6) As Ogrenci

ReDim Mahmut(1).GectigiDersler(1 To 5) As String

ReDim Mahmut(3).GectigiDersler(0 To 12) As String



End Sub

9 Temmuz 2013 Salı

VİSUAL BASİC DÖNGÜLER


Bu gün ki yazımızda sizlere Visual Basic Döngülerden bahsedeceğiz.


DÖNGÜLER


Döngü bir karar verme yapısı içerir. Visual Basic başka bir yordam bir durum ya da koşulların bir dizi kadar birçok kez tekrar edilmesi bir prosedür yerine getirilir sağlar. Bu genellikle döngü denir. Tekrarlayan işleri daha kolay hale getirir, çünkü Döngü Visual Basic çok faydalı bir özelliktir. Visual Basic döngüler iki tür, Do ... için döngü ve vardır ....... Next döngüsü


Do Döngüleri

Aşağıda gösterildiği gibi Do Döngü deyimleri, üç farklı formları vardır:
a) Do While durumu
Bir veya daha fazla VB tabloların Blok
Döngü
b) Do 
Bir veya daha fazla VB tabloların Blok 
Döngü sırasında durumu
c) Do durumu kadar 
Bir veya daha fazla VB tabloların Blok 
Döngü
d) Do 
Bir veya daha fazla VB tabloların Blok
Durumu kadar döngü


Döngüden Çıkma
Bazen, çünkü belirli bir durumun erken bir döngü çıkmak için çıkmak gerekir yerine getirilir. Çıkış mı olarak kullanmak için sözdizimi bilinmektedir. Bunu kullanım için Örnek 9.2 inceleyebilirsiniz.
Örnek 9.1
Yaparken sayaç <= 1000
num.Text = sayacı
counter = sayaç +1
Döngü
* Yukarıdaki örnek sayacı> 1.000 kadar ekleyerek devam edecektir.
Yukarıdaki örnek olarak yazılabilir
Yapmak
num.Text = sayacı 
counter = sayaç +1
Döngü sayacı> 1.000 kadar
Örnek 9.2
Toplamı Dim, n As Integer
Private Sub) (Form_Activate
List1.AddItem "n" ve vbTab ve "toplam"
Yapmak
n = n + 1 '
Toplam = Toplam + n
List1.AddItem n ve vbTab & Sum
N = 100 Then
Do çıkın
End If
Döngü
End Sub
Açıklama
Yukarıdaki örnekte, 1 +2 +3 +4 + ...... +100 toplamı hesaplamak. Tasarım aşamasında, size List1 adlı çıkış, görüntülemek için forma bir liste kutusu eklemek gerekir. Program ListBox doldurmak için AddItem yöntemi kullanır. Bu başlıkları n ve toplam arasında bir boşluk oluşturmak için vbTab işlevini kullanır nerede Açıklamada List1.AddItem "n" ve vbTab ve "toplam", ListBox başlıkları gösterecektir.

For Döngüsü

Biçimi: 
EndNumber aykırı = startNumber (Adım artış) for
Bir veya daha fazla VB ifadeleri
Sonraki
Örneğin 9.3a, 9.3b ve kullanım için 9.3 c bakınız.
Bazen kullanıcı tüm tekrarlanan süreç yürütülür önce döngüden çıkmak isteyebilirsiniz, kullanmak için komut for çıkın edilir. Bir süre .... Sonraki Döngü çıkmak için, döngü içinde ifadesi for Exit yerleştirebilirsiniz ve normal ise ..... Sonra ... deyimi ile birlikte kullanılır. Örneğini 9.3 d inceleyelim.
Örnek 9.3
Sayaç için = 1 ile 10  
display.Text = sayacı
Sonraki

Örnek 9.3 b
Counter = 1 -1000 adım 10  
counter = sayaç +1
Sonraki

Örnek 9.3 c
Karşı = 1000 ile adım 5 -5 için
karşı = karşı-10
Sonraki
* Dikkat edin artış negatif olabilir

Örnek 9.3 d
Private Sub) (Form_Activate
N = 1 ile 10
N> 6 ise o zaman
Için Exit
End If
Başka
Yazdır n
End If
End Sub

9.4 While .... Wend Döngüsü


Bir While yapısı .... Wend döngü Do Döngü çok benzer. bu şu biçimi alır:

Ise durumu
Tablolar
Wend
Yukarıdaki döngü koşulu sağlanmazsa ise, döngü devam edeceği anlamına gelir. Koşul zaman döngü sona erecek. , Örneğin 9.4 ve örneğin 9.5 ile aynı sonucu üretir nerede örneğini 9.6 listelenen program inceleyelim  
Örnek 9.6
Toplamı Dim, n As Integer
Private Sub) (Form_Activate
List1.AddItem "n" ve vbTab ve "toplam"
Da N <> 100
n = n + 1 '
Toplam = Toplam + n
List1.AddItem n ve vbTab & Sum
Wend
End Sub

25 Haziran 2013 Salı

VİSUAL BASİC DERS NOTLARI



Bugün ki yazımızda size Visual Basic Ders Notlarından Sınıf oluşturmayı göreceğiz.

VİSUAL BASİC SINIF OLUŞTURMA


Nesne yönelimli programlama dilinin büyük yararı, kendi nesneleri oluşturabilmemizdir.
Biz çok basit bir sınıf oluştururken, şimdi nasıl gördüğümüzü ve daha sonra bir nesne haline edeceğiz.
Bizim yaratacağımız sınıf çok basittir ve o zaman bir nesne oluşturma, bir sınıf kurma temel tekniği göstermek için tasarlanmıştır.Yaratacağımız Sınıf büyük harfe bir posta kodu harflerini dönüştürür. Biz bir form üzerinde bir metin kutusu posta kodu alırsınız. Kapalı biz sonra gidin. 
  • Yeni bir VB. NET proje başlatın
  • Formunuza bir metin kutusu ekleyin ve Metinkutusu1, varsayılan Adı bırakın
  • Ts1 4JH (bizim nesne dönüştürür çünkü harf, küçük ve üst olmadığından emin olun.) Için MetinÖzellik değiştirin
  • Formunuza bir Butonu Ekle
Bir kez bir metin kutusu ile yeni bir form var ve üzerinde bir düğme, bir sınıf eklemeniz gerekir. Bu oldukça kolaydır. Sadece gibi bir modül ekleyerek . Aslında tam olarak aynı görünüyor!
  • Yani VB menü çubuğundan, Proje tıklayın
  • Menü açılır menüden, Add Class tıklayın
  • Bu sürümü 2008 yılında iletişim kutusu alırsınız:
VİSUAL BASİC DERS NOTLARI
(Sürüm 2.012 aşağıdaki birinin daha az renkli versiyonu olacaktır) sürümü 2010 yılında, diyalog kutusu böyle görünüyor:
VİSUAL BASİC DERS NOTLARI

Sağdaki Sınıf Şablon zaten seçilmiş olur. Değiştirmek için gereken şey altındaki adı olduğunu.Varsayılan adı Class1.vb olduğunu. Bu korkunç açıklayıcı değil ve birkaç ay satır aşağı, bu sınıf ne yaptığını çalışan büyük sorun olacak.
Class1.vb gelen ConvertPostcode.vb için Ad değiştirin. Daha sonra  düğmesini tıklatın.
Sınıf için kod penceresi açıldığında, bu gibi görünecektir:
VİSUAL BASİC DERS NOTLARI
Gördüğünüz gibi, bakmak için büyük bir anlaşma değil! Elimizdeki tüm Public Class ... End Classkodu taslaktır. Bizim Sınıf adı da var. Ancak kod ayrı bir pencerede ve kendisine tüm bir sekme vardır.Bu yeniden ve bir nesne haline kod dolu bu sekme var.
Bizim posta kodu dönüştürür - Bizim şimdi yapmamız gereken iş yapan kod ekleyin. Ama biz sadece bu yazdık:
As String ConvertPostcode Dim
= StrConv (TextBox1.Text, VbStrConv.UpperCase) ConvertPostcode
ConvertPostcode TextBox1.Text =
Bu bizim Form Düğmemiz için iyi olacaktır. Ama bizim sınıf için tamam değil. Bir Sınıf tasarlarken, kodunuzu Fonksiyonlar ve Subs gibi şeyler içinde gitmek zorunda. Ayrıca nesneler için kendi özelliklerini nasıl oluşturulacağını göreceksiniz.
Bir işlev veya alt kurduğunuzda, gerçekte nesneler için Yöntemler (Bir Yöntem aslında bir eylem. Bizim durumumuzda bir posta kodu dönüştürür yapar bir şey, yok koddur.) Oluştururken Biz bir sonraki nasıl göreceksiniz .

15 Haziran 2013 Cumartesi

Visual Basic Tarih ve Saat FonksiyonlarBugün sizlere Visual Basic programında Tarih ve Saat Fonksiyonları'nı anlatacağım..

Visual Basic Tarih Fonksiyonu: 

Geçerli tarih ve / veya saat başvurmak için VB anahtar kelimeleri hatırlayalım:

Tarih Geçerli tarihi döndürür
Saat Geçerli zamanını döndürür

Aşağıdaki örneklerde, geçerli Tarih / Saat (Şimdi), 31 Ağustos 2001 Cuma varsayalım 09:15:20 de.

Aşağıdaki fonksiyonları bir Tarih / Saat değeri, sırasıyla, tarih bölümü ve saat bölümünü göreceğiz.

Fonksiyon

Tanımlama

DateValue
Saat bölümünün "sıfırlanmasını" ile, Tarih / Saat değerinden tarih kısmını verir.(Not: Bir tarih / saat değişkenin vb6 saat bölümü "sıfırlanmasını" demek, zaman 12:00 olarak yorumlanır.)

Örnek:

Tarihi Dim dtmTest
dtmTest = DateValue (Şimdi)

Bu noktada, dtmTest tarihinden kısmı 0 bir saat bölümü (12:00 AM,, 2001/08/31 olduğu gece yarısı).
TimeValue
Tarih bölümünün "sıfırlanmasını" ile, Tarih / Saat değeri kısmından zamanı verir. (Not: Bir tarih / saat değişken "sıfırlanmasını" demek, tarihin aslında 30 Aralık 1899 olarak yorumlanır.)

Örnek:

Tarihi Dim dtmTest
dtmTest = TimeValue (Şimdi)

Bu noktada, dtmTest saat bölümünü 0 (12/30/1899) bir tarih bölümü ile, 09:15:20 olduğunu.


Aşağıdaki fonksiyonları bir VB6 tarih belirli bir kısmını izole etmek için kullanılır:

Fonksiyon

Tanımlama

Iş günü
1 1 Pazar ve 7 Cumartesi olan belirli bir tarih haftanın gününü gösteren 7, bir sayı döndürür.

Örnek:
intDOW = Hafta içi (Şimdi) 'intDOW = 6

Not:
Kod haftanın bir günü başvurmak için gerektiğinde, VB kodlanmış değerleri 1-7 yerine kullanılabilir sabitleri yerleşik bir dizi vardır:
Sabit Değer
vbSunday 1
vbMonday 2
vbTuesday 3
vbWednesday 4
vbThursday 5
vbFriday 6
vbSaturday 7


Fonksiyon

Tanımlama

WeekdayName
7 ile değeri 1 ile bir sayısal argüman verilen gün ismi ("Sunday" thru "Cumartesi") içeren bir dizeye döndürür.

Örnek:
strDOW = WeekdayName (6) 'strDOW = "Cuma"

WeekdayName fonksiyonu hafta içi adını kısaltmak için olup olmadığını gösteren isteğe bağlı, ikinci argüman (Boolean) alır. Varsayılan olarak, ikinci argüman kısaltmak ve tam adı dönmeyen, yani False olan. Gerçek ise(True), gün ismi ilk üç harfi iade edilecektir:

Örnek:
strDOW = WeekdayName (6, Gerçek) 'strDOW = "Cum"

Belirli bir tarih gün ismi almak için WeekdayName işlev içinde iç içe Hafta içi fonksiyonu olabilir:

Örnek:
strDOW = WeekdayName (Hafta içi (Şimdi)) 'strDOW = "Cuma"
Ay
Belirli bir tarihi ayı kısmı gösteren 1 ile 12 arasında bir sayı verir.

Örnek:
intMonth = Ay (Şimdi) 'intMonth = 8
MonthName
12 ile değeri 1 ile bir sayısal argüman verilen ay adı ("January" thru "Aralık"), içeren bir diziye döndürür.

Örnek:
strMoName = MonthName (8) 'strMoName = "Ağustos"

MonthName fonksiyonu ay adını kısaltmak için olup olmadığını gösteren isteğe bağlı, ikinci argüman (Boolean) alır. Varsayılan olarak, ikinci argüman kısaltma ve tam adı dönmeyen, yani False. Gerçek ise, ayın adının ilk üç harfini iade edilecektir:

Örnek:
strMoName = MonthName (8, Gerçek) 'strMoName = "üzerine, Ağu"

Sen MonthName işlev içinde Ay işlevi, belirli tarih ay adı almak için yuva yapabilirsin

Örnek:
strMoName = MonthName (Ay (Şimdi)) 'strMoName = "Ağustos"
Gün
Belirli bir tarihin gün kısmını gösteren 1 ile 31 arası bir sayı verir.

Örnek:
intDay = Gün (Şimdi) 'intDay = 31
Yıl
100, belirli bir tarih yıl kısmı gösteren 9999'a kadar bir sayı verir.

Örnek:
intYear = Yıl (Şimdi) 'intYear 2001 =


Aşağıdaki fonksiyonları bir zamanın belirli bir kısmını izole etmek için kullanılır:

Fonksiyon

Tanımlama

Saat
Günün saati temsil eden 0 ile 23 arasında bir tam sayı belirten bir tamsayı döndürür.

Örnek:
intHour = Saat (Şimdi) 'intHour = 21 (9 pm için)
Dakika
Saat dakika temsil eden 0 ile 59 arasında bir tam sayı belirten bir tamsayı döndürür.

Örnek:
intMinute = Dakika (Şimdi) 'intMinute = 15
Ikinci
Dakika, ikinci temsil eden 0 ile 59 arasında bir tam sayı belirten bir tamsayı döndürür.

Örnek:
intSecond = İkinci (Şimdi) 'intSecond = 20


Şimdiye kadar gösterilen tarih fonksiyonları göstermek için, bir "Deneyin" projesi kuralım ve cmdTryIt_Click olay aşağıdaki kodu yerleştirelim

Private Sub cmdTryIt_Click ()

Sekme (30),, Şimdi: "Şimdi" Yazdır
(Şimdi) DateValue; Tab (30),: "DateValue kullanma" Yazdır
(Şimdi) TimeValue; Tab (30),: "TimeValue kullanma" Yazdır
(Şimdi) Hafta içi; Tab (30),: "Hafta içi kullanma" Yazdır
(Hafta içi (Üye)) WeekdayName; Tab (30),: "WeekdayName kullanma" Yazdır
Sekme (30),, WeekdayName (Hafta içi (Şimdi), Gerçek): "kullanarak WeekdayName (abbrev.)" Yazdır
(Şimdi) Ay; Tab (30),: "Ay kullanma" Yazdır
(Ay (Üye)) MonthName; Tab (30),: "MonthName kullanma" Yazdır
Sekme (30),, MonthName (Ay (Şimdi), Gerçek): "(abbrev.) MonthName kullanma" Yazdır
(Şimdi) Gün; Tab (30),: "Gün kullanma" Yazdır
(Şimdi) Yıl; Tab (30),: "Yıl kullanma" Yazdır
"Saat Kullanımı:" Yazdır; Tab (30); Saat (Şimdi)
Sekme (30);; Dakika (Şimdi): "kullanarak Dakika" Yazdır
(30) Tab,, İkinci (Şimdi): "İkinci kullanma" Yazdır

End Sub

Projeyi çalıştırın ve "Deneyin" butonuna tıklayın. Çıktı aşağıdaki gibi olmalıdır:


DatePart İşlevi
Genel DatePart işlevi, belirli tarih / saat değerinin belirtilen parçası içeren bir tamsayı döndürür. Bu nedenle, hafta içi, Ay, Gün, Yıl, Saat, Dakika, ve İkinci fonksiyonların işlevselliğini içerir. Buna ek olarak, belirli bir tarihte (1 ile 4), "Julian" tarihi (1 366 için yılın gün) ve hafta numarası (53 ile 1) bir çeyrek elde etmek için kullanılabilir.

Sözdizimi:
DatePart (aralık, tarih [, haftanınilkgünü [, yılınilkhaftası]])

DatePart işlevi sözdizimi şu bölümlerden oluşur:

Bölüm
Tanımlama
aralık
Gerekli. İade etmek istediğiniz zaman aralığı olan dize ifadesi.

Dize ifadesi aşağıdakilerden herhangi biri olabilir:

Ifade
Tanımlama
Değerler olası aralığı
"Yyyy"
Yıl
100-9999
"Q"
Çeyrek
1-4
"M"
Ay
1-12
"Y"
Yılın günü
1-366 (bir "Jülyen" tarih)
"D"
Gün
1-31
"W"
Iş günü
1-7
"Ww"
Hafta
1-53
"H"
Saat
0-23
"N"
Dakika
0 ila 59
"S"
Ikinci
0 ila 59
tarih
Gerekli. Değerlendirmek istediğiniz bu değer.
haftanınilkgünü
İsteğe bağlı. Haftanın ilk günü belirten bir sabit. Belirtilmezse Pazar varsayılır.
yılınilkhaftası
İsteğe bağlı. Yılın ilk haftası belirten bir sabit. Belirtilmemiş ise, birinci hafta Ocak 1 oluştuğu hafta olduğu varsayılır.


DatePart göstermek için, bir "Deneyin" projesi kurun ve cmdTryIt_Click olayı için aşağıdaki kodu yerleştirin:

Private Sub cmdTryIt_Click ()
Yazdır "Güncel tarih / zaman:"; _
(Şimdi, "Uzun Tarih") $ biçimlendirin; _
SPC (1); _
(Şimdi, "Long Time") $ Format
Yazdır "*** DatePart işlev örnekleri ***"
"'Yyyy' kullanmak:" Baskı; Tab (20); DatePart (Şimdi "yyyy",)
"'Q' kullanmak:" Baskı; Tab (20), DatePart ("q", Şimdi)
"'M' kullanmak:" Baskı; Tab (20); DatePart (Şimdi "m",)
"'Y' kullanmak:" Baskı; Tab (20), DatePart ("y", Şimdi)
"'D' kullanarak:" Baskı; Tab (20), DatePart ("d", Şimdi)
"'W' kullanmak:" Baskı; Tab (20); DatePart (Şimdi "w",)
"'Ww' kullanmak:" Baskı; Tab (20), DatePart ("ww", Şimdi)
"'H' kullanarak:" Baskı; Tab (20), DatePart ("h", Şimdi)
"'N' kullanarak:" Baskı; Tab (20); DatePart (Şimdi "n",)
"'S' kullanarak:" Baskı; Tab (20), DatePart ("s", Şimdi)

End Sub


Projeyi çalıştırın ve "Deneyin" butonuna tıklayın. Çıktı aşağıdakine benzer görünmelidir:





Bir tarih veya saat Değeri Form ile Birlikte Ayrı Numaraları birleşiyor

Önceki örneklerde, bir tarih / saat değeri parçaları izole etmek için yollar gördüm.Eğer "başka bir yol" gitmek gerekirse? DateSerial ve TimeSerial: farklı değişkenleri bir tarih / saat değerinin ayrı parçalar ve bir tarih veya saat formüle onları bir araya istiyorsanız, bunu yapmak için kullanabileceğiniz iki işlevi vardır.

Yıl, ay ve gün sırasıyla: DateSerial üç sayısal argüman alır. Bu, bu değerlere dayalı bir tarihi verir. 
Örnek:

As Integer Dim intYear
As Integer Dim intMonth
As Integer Dim intDay
Tarihi Dim dtmNewDate

intYear 2001 =
intMonth = 9
intDay = 2

dtmNewDate = DateSerial (intYear, intMonth, intDay)
'2001/09/02 döner

Saat, dakika ve saniye sırasıyla: TimeSerial üç sayısal argüman alır. Bu, bu değerlere dayalı bir zaman verir.
Örnek:

As Integer Dim intHour
As Integer Dim intMinute
As Integer Dim intSecond
Tarihi Dim dtmNewTime

intHour = 11
intMinute = 34
intSecond = 44

dtmNewTime = TimeSerial (intHour, intMinute, intSecond)
'11:34:44 (AM) döner