Basit bir hesap makinası oluşturma.

Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Foruma eklediğim bir uygulamayla ilgili soru soran arkadaşlar var. Onlar için basit bir hesap makinasının yapım aşamalarını ekliyorum. Uygulama ekte.

Önce yeni bir access uygulaması oluşyuruyoruz. Sonra tasarım görünümğnde bir form ekleyip frmHesapmakinasi olarak kydediyoruz.

Form üstüne bir metin kutusu (adı:sayi) ekliyoruz. Daha sonra ise 0-9 arası 10 adet düğme ekliyoruz (adları. b0,b1,...b9). İşlemleri yapacak 6 adet düğme daha ekliyoruz (adları: topla, cikar, carp, bol, esit, clear)

Form üstünde iitediğimiz değişiklikleri ve özellikleri ayarlıyoruz. (Form özelliklerinden biçim sekmesi ayarları.

Formun kod yazma penceresini açarak en üstte iki genel değişken ekliyoruz. (giris ve islem). Eğer sonuçlar diğer formlarda kullanılacak ise yeni bir modülde belirtmemiz gerekiyor.

Numara düğümelerinin klik olaylarının kodlarını şöyle oluşturuyoruz.

Kod:
Private Sub b0_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 0
End Sub
Private Sub b1_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 1
End Sub
Private Sub b2_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 2
End Sub
Private Sub b3_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 3
End Sub
Private Sub b4_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 4
End Sub
Private Sub b5_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 5
End Sub
Private Sub b6_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 6
End Sub
Private Sub b7_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 7
End Sub
Private Sub b8_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 8
End Sub
Private Sub b9_Click()
Me.sayi.Value = Val(Me.sayi.Value) * 10 + 9
End Sub
1 e tıklanınca yani yazılan sayıyı 10 ile çarp 1 ekle
örneğin 123 yazıyosa, 1230 + 1 = 1231
bunu, tıklanınca sayıyı yanına eklemesi için kullanıyoruz.


Böl butonunun klik olayı:

Kod:
Private Sub bol_Click()
If giris > 0 Then
    If islem = "+" Then Me.sayi.Value = Val(giris) + Val(Me.sayi.Value)
    If islem = "-" Then Me.sayi.Value = Val(giris) - Val(Me.sayi.Value)
    If islem = "*" Then Me.sayi.Value = Val(giris) * Val(Me.sayi.Value)
    If islem = "/" Then Me.sayi.Value = Val(giris) / Val(Me.sayi.Value)
End If
giris = Me.sayi.Value
Me.sayi.Value = ""
Me.sayi.SetFocus
islem = "/"
End Sub
Açıklama :
ilk satırda alt kod için giriş yaptık. onu geçiyorum

2-7 satırlar arasında sunu kastediyoruz.
eğer giris değişkenine değer atandıysa, yani daha önceden işlem yapıldıysa sonucu yazdır ve işlem yapmaya devam et. yani programın üstüste işlemler yapabilmesi için gerekli olan kısım.

8. Satır >> giris değişkenine girilen sayıyı aktarıyoruz.
9. Satır >> sayi nesnesini (yazı girilen alan) boşaltıyoruz.
10. Satır >> ve imleci yazı alanına konumlandırıyoruz.
11. Satır >> islem değişkenine / karakterini atıyoruz. (hangi işlemi yapacağını belirlemek için)
12. Alt kod kısmını kapatıyoruz.


diğerleri de aynı şekilde. sadece 11. satırda değişiklik yapıyoruz.


Çarp butonu klik olayı:


Kod:
Private Sub carp_Click()
If giris > 0 Then
If islem = "+" Then Me.sayi.Value = Val(giris) + Val(Me.sayi.Value)
If islem = "-" Then Me.sayi.Value = Val(giris) - Val(Me.sayi.Value)
If islem = "*" Then Me.sayi.Value = Val(giris) * Val(Me.sayi.Value)
If islem = "/" Then Me.sayi.Value = Val(giris) / Val(Me.sayi.Value)
End If
giris = Me.sayi.Value
Me.sayi.Value = ""
Me.sayi.SetFocus
islem = "*"
End Sub


çıkar butonu klik olayı:

Kod:
Private Sub cıikar_Click()
If giris > 0 Then
If islem = "+" Then Me.sayi.Value = Val(giris) + Val(Me.sayi.Value)
If islem = "-" Then Me.sayi.Value = Val(giris) - Val(Me.sayi.Value)
If islem = "*" Then Me.sayi.Value = Val(giris) * Val(Me.sayi.Value)
If islem = "/" Then Me.sayi.Value = Val(giris) / Val(Me.sayi.Value)
End If
giris = Me.sayi.Value
Me.sayi.Value = ""
Me.sayi.SetFocus
islem = "-"
End Sub
Topla butonu klik olayı.

Kod:
Private Sub topla_Click()
If giris > 0 Then
If islem = "+" Then Me.sayi.Value = Val(giris) + Val(Me.sayi.Value)
If islem = "-" Then Me.sayi.Value = Val(giris) - Val(Me.sayi.Value)
If islem = "*" Then Me.sayi.Value = Val(giris) * Val(Me.sayi.Value)
If islem = "/" Then Me.sayi.Value = Val(giris) / Val(Me.sayi.Value)
End If
giris = Me.sayi.Value
Me.sayi.Value = ""
Me.sayi.SetFocus
islem = "+"
End Sub
eşit butonu klik olayı:

Kod:
Private Sub esit_Click()
If islem = "+" Then Me.sayi.Value = Val(giris) + Val(Me.sayi.Value)
If islem = "-" Then Me.sayi.Value = Val(giris) - Val(Me.sayi.Value)
If islem = "*" Then Me.sayi.Value = Val(giris) * Val(Me.sayi.Value)
If islem = "/" Then Me.sayi.Value = Val(giris) / Val(Me.sayi.Value)
End Sub
Açıklama >> burda yapılanı diğer butonlarda birden fazla işlem yapılabilmesi için kullandık.
peki ne yazıyor burda ?? güzel soru
kullanıcı,
+ butonuna tıklayınca islem değişkeni "+" değerini almıştı.
- butonuna tıklayınca islem değişkeni "-" değerini almıştı.
* butonuna tıklayınca islem değişkeni "*" değerini almıştı.
/ butonuna tıklayınca islem değişkeni "/" değerini almıştı.

bu satırlarda da diyorki.
eğer islem değişkeni + ise (yani kullanıcı +ya basmışsa) ilk sayıyla 2. sayıyı topla

eğer işlem değişkeni - ise (yani kullanıcı - ye basmışsa) ilk sayıdan 2. sayıyı çıkar.

bölme ve çarpma da aynı şekilde....


Clear butonu kodları:

Kod:
Private Sub clear_Click()
Me.sayi.Value = 0
islem = ""
giris = 0
End Sub
2.satır >> sayı girdiğimiz alanı temizler.
3. satır >> işlem değişkenini temizler.
4. satır >> giris değişkenini temizler.


Bir de form ilk açılışında sayı metin kutusuna 0 değerini atamamız veya özelliklerden default ayarını 0 yapmamız gerekir.

Kod:
Private Sub Form_Load()
Me.sayi.Value = 0
End Sub
İyi çalışmalar
 

Ekli dosyalar

Katılım
11 Nisan 2009
Mesajlar
3
Excel Vers. ve Dili
SQL
Çok tesekkür ederim özel mesajdan istemiştim sagolun beni kırmadınız ve yardım ettiniz sizin sayenizde ödevimi yetiştirdim size minnetarım
 
Katılım
18 Şubat 2010
Mesajlar
1
Excel Vers. ve Dili
kuiaü
Bu hesap makınesınde nok ta nıe yok onu nasıl yapıcam...?
 
Katılım
31 Ağustos 2005
Mesajlar
1,534
Excel Vers. ve Dili
Excel 2003 - Türkçe
Sayın Modalı. Paylaşımınıza çok teşekkürler.

Kuruş hanesi için nokta kısmı da ilave edilebilir mi?
 
Üst