Switch Fonksiyonu
#1
Arkadaşlar bende bir fonksiyon ekliyorum, gerçi bu fonksiyon pek kuulanılmıyor ama ola ki birinin böyle bir şeye ihtiyacı olursa buradan faydalanır, Fonksiyonumuz Switch Fonksiyonu, görevi iki değeri yer değiştirir, bu basit örnekte Yiyecek ve kategori şeklinde..VBA da bunun için şöyle bir fonksiyon kullanıyoruz
Visual Basic
  1. Function Yiyecek(Kategori As String)
  2. Yiyecek = Switch(Kategori = "Vişne", "Meyve", _
  3. Kategori = "Pırasa", "Sebze", _
  4. Kategori = "Fasulye", "Bakliyat")
  5. End Function



Kullanımda Çilek Değeri Girildiğinde Meyve Sonucunu verir.(Burada 2 şerli grup halinde karşılaştırma yapar, Mesela Nohut girildiğinde, Bakliyat değeri verir...Smile





  Alıntı
Bu mesajı beğenenler:
#2
Selam,

Visual Basic
  1. Function Yiyecek(Kategori As String)
  2. Yiyecek=Switch (Kategori= "Çilek" or "Vişne", "Meyve", "Patates" or "Pırasa", "Sebze", "Nohut" or "Pirinç" or "fasulye", "Bakliyat")
  3. End Function


Gibide kullanılabilir mi?



  Alıntı
Bu mesajı beğenenler:
#3
Merhaba Sayın enigmatic, dediğiniz şekilde hata mesajı verecektir, başta da dediğim gibi ikili grupları ele alır ve karşısındakini verir şöyle bir şey olabilir,
Visual Basic
  1. Function Yiyecek(Kategori As String)
  2.  
  3. Yiyecek = Switch(Kategori = "Vişne", "Meyve", _
  4. Kategori = "Elma", "Meyve", _
  5.  
  6. Kategori = "Pırasa", "Sebze", _
  7. Kategori = "Patates", "Sebze", _
  8.  
  9. Kategori = "Nohut", "Bakliyat", _
  10. Kategori = "Fasulye", "Bakliyat")
  11.  
  12. End Function



önceki kodumuzda da yanlışlık vardı onu düzelttim.
Spinny



  Alıntı
Bu mesajı beğenenler:
#4
Merhaba..

İlave olarak birkaç bilgi de ben vereyim. Bu fonksiyon IIF ile mantık olarak benzer, amaç olarak ise hiçbir farkı yok.. Eğer olası koşullar çok fazla ise bu durumda bu switch fonksiyonunu kullanırız.
İç içe iif yazmaktan bizi kurtarır.. Wink




  Alıntı
Bu mesajı beğenenler:
#5
Sayın onur_can öncelikle paylaşımınız için teşekkür ederim. Bir detay da ben vermek istiyorum. (Fakat tam emin değilim) Hemen bir senaryo yazayım Smile

Benim bir tek dostum olsun adı Ali. Kullanıcı adı Ali ise Metin kutusuna "Dost" yazsın, farklı kullanıcılar için "Arkadaş" yazsın. Böyle bir durumda sanırım switch fonksiyonu kullanılamıyor. if ile halletmemiz gerekiyor. Şöyleki;
Visual Basic
  1. if kullaniciadi="Ali" then
  2. metinkutusu="Dost"
  3. else
  4. metinkutusu="Arkadaş"
  5. end if



Bu durumu switch ile yazmak istesek sanırım olası tüm senaryoları girmemiz gerekirdi. (Yalnız dediğim gibi tam emin değilim, kısa bir araştırma neticesinde edindiğim önyargıyı paylaşıyorum)



  Alıntı
Bu mesajı beğenenler:
#6
Merhaba MirzaKatar..

Switch fonksiyonunda da else (değilse) kullanmak mümkündür..:

Visual Basic
  1. metinkutusu= Switch(kullaniciadi ="Ali","dost", -1,"arkadaş")



-1 yani True ifadesinde sonra else değeri yazılmalı..



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Mid Fonksiyonu onur_can 4 10.241 10-10-2018, 11:07
Son Mesaj: onur_can
access-sql-6 InStr Fonksiyonu adnanyurdakul 8 14.042 03-06-2015, 22:22
Son Mesaj: mersilen
access-sql-6 StrConv Fonksiyonu Taruz 24 17.920 22-06-2012, 16:52
Son Mesaj: polodored
  Replace Fonksiyonu onur_can 4 5.075 09-11-2011, 12:12
Son Mesaj: BİDER
  Trim Fonksiyonu Taruz 3 7.190 08-02-2011, 09:39
Son Mesaj: Elnur Aliyev
  Space Fonksiyonu Taruz 1 4.569 22-04-2009, 09:51
Son Mesaj: assenucler
  StrReverse Fonksiyonu Taruz 2 3.735 22-04-2009, 09:44
Son Mesaj: assenucler

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi