Skip to main content

AccessTr.neT


Tablolar arası hesaplanmış alanda Iff komutu yardımı

Tablolar arası hesaplanmış alanda Iff komutu yardımı

#7
Sayın nightashes,

Aşağıdaki açıklamaların yapılması uygun görülmüştür.

Konunuzun 6.mesajında eklediğiniz örnek uygulamada her ne kadar soruna maruz kalarak eklemeye çalıştığınızı beyan etseniz de,içeriğinde kontroller için gerekli olan sorgu ve formların da bulunmaması nedeni ile tam bir yorum yapmak yetersiz kalmaktadır.Dolayısı ile de,ancak yazıya aktarmak sureti ile bazı hususları açıklamak zorunlu olmaktadır.

1)

IIf([DOVIZCINSI]="TL";[ALISFIYATI]*1;IIf([DOVIZCINSI]="Dolar";[ALISFIYATI]*2;IIf([DOVIZCINSI]="TL";[ALISFIYATI]*3;0)))

Eklediğiniz bu kod için,sadece bir düzeltme hatırlatması olması adına;3 değeri ile çarpım için kullandığınız sondaki TL ifadesini Euro olarak değiştirmeyi unutmayınız.

2)

Açıklamalarınızdan anladığım kadarı ile,yapmayı istediğiniz işlem şu olsa gerek; URUN_YENI adlı tablo içerisinde yer alan TLCEVIRIM adlı alana değer olarak, TANIM_DOVIZ adlı tabloda SECIM adlı alanda hangi kayıt üzerinde İŞARETLEME var ise,o işaretli alana karşılık gelen o kayıttaki Döviz Cinsi hangisi ise onun kur değeri ile çarpım sonucunu elde etmek istiyorsunuz.yanılıyorsam,gerekli bilgilendirmeyi yapmanız yerinde olacaktır.

3)

Fakat burada aklıma takılan naçizane şu husus var:

Alıntı:…diğer tablom olan TANIM_DOVIZ de SECIM alanı işaretli satırdaki Dolar ve Euro birimlerini kullanması. Tabi şöylede bir sorun olmakta birden fazla seçimi engelleyemediğim için bunu yaptığımda hesaplama muhtemelen gerçekleşmeyecektir. O yüzden bu SECIM alanında bir adet satır işaretli olmalı…

İfadenize yönelik olarak;
Eğer bu alan üzerinde sadece tek seçim yapılacaksa,o zaman,sonraki diğer kayıtlarda nasıl bir seçim sağlamak istiyorsunuz? Ya da seçilebilirlik durumu olabilir mi sizce?

Çünkü;tek seçim yaptıktan sonra,bir başka kayıt için yeni bir seçim yapma durumunuz olmayacaktır haliyle.bu da,sorun demektir.Bunun yerine size naçizane şöyle bir tavsiyem olacak,izninizle.Anlaşılan o dur ki;

URUN_YENI adlı tablonuzdaki ilgili alana hangi Döviz Cinsi tercih edilecekse o tercihe göre Alış Fiyatı’na kur işlemi uygulanmak isteniyorsa,o zaman,şunu deneyebilirsiniz.

a) Günün tarihine göre kur değerleri TANIM_DOVIZ  adlı tabloya aktarımı sağlanır.(NOT:ayrıca,Web üzerinden,tabloya Döviz Kuru alma konusunda,site arama sayfasında konular ve örnek uygulamaları mevcut.inceleyebilir ve kendi uygulamanıza aktarımda bulunmayı deneyebilirsiniz.)

b) Günün tarihine göre, URUN_YENI tablosundaki tarih değeri kriter karşılaştırması olarak belirlenmek sureti ile Dlookup Fonksiyonu kullanımı ile hangi Döviz Cinsi tercih ediliyorsa o Döviz Cinsi’ne göre TANIM_DOVIZ  tablosunda karşılık gelen kur değeri alınır ve tercihine göre IIF Fonksiyonu kullanımı ile ya da bir başka hesaplama işlemi aracılığı ile hesaplaması yapılabilir.

Böylece,herhangi bir işaretleme durumuna da gerek kalmaksızın,sonuçları elde etmeniz söz konusu olabilir.

Son olarak;
Hesaplanmış alanı tabloda barındırmak yerine,form üzerinde bu hesaplama işlemini sağlamanız bir bakıma daha geçerli olabilir.böylece,tabloya fazlanda bir alan eklenmesini ve değerler ile tablo miktarının zaman içerisinde az da olsa artmasını da engellemiş olursunuz.tercih ve takdir sizindir elbet.

Bilginize…iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#8
Sayın atoz112,
Öncelikle zaman ayırdığınız için teşekkür ederim. Dediklerinize cevap vermeye çalışayım.

Alıntı:1)

SeçVisual Basic Code
IIf([DOVIZCINSI]="TL";[ALISFIYATI]*1;IIf([DOVIZCINSI]="Dolar";[ALISFIYATI]*2;IIf([DOVIZCINSI]="TL";[ALISFIYATI]*3;0)))

Eklediğiniz bu kod için,sadece bir düzeltme hatırlatması olması adına;3 değeri ile çarpım için kullandığınız sondaki TL ifadesini Euro olarak değiştirmeyi unutmayınız.

Evet haklısınız burdaki hatayı bende fark ettim ve düzelttim sonradan.

Alıntı:2)

Açıklamalarınızdan anladığım kadarı ile,yapmayı istediğiniz işlem şu olsa gerek; URUN_YENI adlı tablo içerisinde yer alan TLCEVIRIM adlı alana değer olarak, TANIM_DOVIZ adlı tabloda SECIM adlı alanda hangi kayıt üzerinde İŞARETLEME var ise,o işaretli alana karşılık gelen o kayıttaki Döviz Cinsi hangisi ise onun kur değeri ile çarpım sonucunu elde etmek istiyorsunuz.yanılıyorsam,gerekli bilgilendirmeyi yapmanız yerinde olacaktır.

Evet çok doğru anlamışsınız. Aynı dediğiniz gibi bir işlem yapmaya çalışıyorum.

Alıntı:3)

Fakat burada aklıma takılan naçizane şu husus var:

Alıntı:
…diğer tablom olan TANIM_DOVIZ de SECIM alanı işaretli satırdaki Dolar ve Euro birimlerini kullanması. Tabi şöylede bir sorun olmakta birden fazla seçimi engelleyemediğim için bunu yaptığımda hesaplama muhtemelen gerçekleşmeyecektir. O yüzden bu SECIM alanında bir adet satır işaretli olmalı…

İfadenize yönelik olarak;
Eğer bu alan üzerinde sadece tek seçim yapılacaksa,o zaman,sonraki diğer kayıtlarda nasıl bir seçim sağlamak istiyorsunuz? Ya da seçilebilirlik durumu olabilir mi sizce?

Çünkü;tek seçim yaptıktan sonra,bir başka kayıt için yeni bir seçim yapma durumunuz olmayacaktır haliyle.bu da,sorun demektir.

Şimdi yapmak istediğim şeyi kısaca anlatmaya çalışayım ve neden tek seçim üzerinde durmaya çalıştığımı anlatmaya.
Program başarı ile çalıştığı zaman gerekli kur bilgilerini el ile istenilen tarihlere gireceğiz. Burada programa seçtiğimiz tarihin kurlarını kullanmasını isteyeceğiz ve böylece seçtiğimiz tarihin kuru üzerinden maliyetlendirmeler yapacak. Direk her seferinde günün kurunu kullanmasını istemeyeceğiz. Misalen ocak ayında ki maliyetlerimiz neymiş öğrenmek istediğimizde ocak ayında girdiğimiz kur değerini seçtimizde ona göre hesaplamaları yapmalı ve göstermeli.


Alıntı:Bunun yerine size naçizane şöyle bir tavsiyem olacak,izninizle.Anlaşılan o dur ki;

URUN_YENI adlı tablonuzdaki ilgili alana hangi Döviz Cinsi tercih edilecekse o tercihe göre Alış Fiyatı’na kur işlemi uygulanmak isteniyorsa,o zaman,şunu deneyebilirsiniz.

a) Günün tarihine göre kur değerleri TANIM_DOVIZ  adlı tabloya aktarımı sağlanır.(NOT:ayrıca,Web üzerinden,tabloya Döviz Kuru alma konusunda,site arama sayfasında konular ve örnek uygulamaları mevcut.inceleyebilir ve kendi uygulamanıza aktarımda bulunmayı deneyebilirsiniz.)

Bu dediğiniz güzel bir uygulama olur oda FORM_DOVIZ içerisine sadece webden günün kurunu veya geçmiş bir tarihin kurunu bize göstermesi için faydalı olacaktır. Bana döviz kurunu göstermesini isterim tabi fakat genede kuru kendim girmek isterim. Misal 11.08.2016 tarihli kuru bana gösterir ; dolar.3,2345 tür ama ben onu emniyetli kalıp 3,25 yazmak isteyebilirim. Demem o ki kurları elle manuel girmek tercihim.

Alıntı:b) Günün tarihine göre, URUN_YENI tablosundaki tarih değeri kriter karşılaştırması olarak belirlenmek sureti ile Dlookup Fonksiyonu kullanımı ile hangi Döviz Cinsi tercih ediliyorsa o Döviz Cinsi’ne göre TANIM_DOVIZ  tablosunda karşılık gelen kur değeri alınır ve tercihine göre IIF Fonksiyonu kullanımı ile ya da bir başka hesaplama işlemi aracılığı ile hesaplaması yapılabilir.

Böylece,herhangi bir işaretleme durumuna da gerek kalmaksızın,sonuçları elde etmeniz söz konusu olabilir.

Az önce yukarda bahsettiğim unsurlardan dolayı bunu yapmak pek mümkün değil. Ve evet dediğiniz gibi bende biraz araştırma yapınca bunu nasıl yaparım dediğim zaman Dlookup fonksiyonu gözüme çarptı ve işime yarayabilir diye düşünmüştüm IFF fonksiyonu ile birleştirerek. Ama tabiki derleyemedim.

Alıntı:Son olarak;
Hesaplanmış alanı tabloda barındırmak yerine,form üzerinde bu hesaplama işlemini sağlamanız bir bakıma daha geçerli olabilir.böylece,tabloya fazlanda bir alan eklenmesini ve değerler ile tablo miktarının zaman içerisinde az da olsa artmasını da engellemiş olursunuz.tercih ve takdir sizindir elbet.
Dediğiniz gibi daha iyi olacağını düşünüyorsanız bu şekildede uygulama yapabiliriz.

Ekte form denetimleri ile birlikte tekrar gönderiyorum. URUN_YENI tablosunda TLCEVIRIM alanı ALISFIYATITL olarak değiştirildi. Fikir ve yardımlarınız dört gözle bekliyorum.

Teşekkürler.
.rar nightashes.03122016_a.rar (Dosya Boyutu: 35,4 KB | İndirme Sayısı: 3)
Alıntı:Her şey bir fikirle başlar.
Cevapla
#9
Merhaba,

URUN_YENI isimli formda bulunan mtn_dovizcinsi isimli açılan kutunun güncelleştirme sonrasında olayına aşağıdaki kodu ekleyiniz.

Select Case Me.mtn_dovizcinsi
Case "Dolar"
Me.mtn_alisfiyatitl = Me.mtn_alisfiyati * Dlookup ("Dolar", "TANIM_DOVIZ", "[SECIM]=-1")
Case "Euro"
Me.mtn_alisfiyatitl = Me.mtn_alisfiyati * Dlookup ("Euro", "TANIM_DOVIZ", "[SECIM]=-1")
Case Else
Me.mtn_alisfiyatitl = Me.mtn_alisfiyati
End Select

Formda yeni kayıt eklerken alış fiyatı yazıp döviz cinsi seçimi yaptıktan sonra tabloda işaretli dövize ait hesaplamayı
mtn_alisfiyatitl alanına aktarır.

tanımlanan dövize ait seçim değiştirilir ise önceki hesaplamalar değişecek mi bilmiyorum. Eğer değişecek ise sorgu ile bu işlem yapılabilir, zira hesaplanan alanların tabloya kaydedilmesi doğru değil.

Ayrıca Yapılmaması Gereken Ölümcül HatalarURL'ye Git 'a gösterdiğiniz özen için teşekkür ederim. Formdaki denetim açılan kutu ise "mtn_dovizcinsi" yerine "acl_dovizcinsi" şeklinde adlandırmanız daha doğru olacaktır.
Cevapla
#10
Ayrıca, forma veri girişi yaparken tarih alanı eklerseniz girilen tarih ve döviz cinsine göre geçerli kuru forma aktarabilirsiniz. ilgili tarih ve para birimine göre döviz kuru yazdırma bağlantısında bulunan 2. mesajdaki örnekteki alt formu inceleyiniz.
Cevapla
#11
(04/12/2016, 04:12)ozanakkaya yazdı: Merhaba,

URUN_YENI isimli formda bulunan mtn_dovizcinsi isimli açılan kutunun güncelleştirme sonrasında olayına aşağıdaki kodu ekleyiniz.

Select Case Me.mtn_dovizcinsi
   Case "Dolar"
       Me.mtn_alisfiyatitl = Me.mtn_alisfiyati * Dlookup ("Dolar", "TANIM_DOVIZ", "[SECIM]=-1")
   Case "Euro"
       Me.mtn_alisfiyatitl = Me.mtn_alisfiyati * Dlookup ("Euro", "TANIM_DOVIZ", "[SECIM]=-1")
   Case Else
       Me.mtn_alisfiyatitl = Me.mtn_alisfiyati
End Select

Formda yeni kayıt eklerken alış fiyatı yazıp döviz cinsi seçimi yaptıktan sonra tabloda işaretli dövize ait hesaplamayı
mtn_alisfiyatitl alanına aktarır.

tanımlanan dövize ait seçim değiştirilir ise önceki hesaplamalar değişecek mi bilmiyorum. Eğer değişecek ise sorgu ile bu işlem yapılabilir, zira hesaplanan alanların tabloya kaydedilmesi doğru değil.

Ayrıca Yapılmaması Gereken Ölümcül HatalarURL'ye Git 'a gösterdiğiniz özen için teşekkür ederim. Formdaki denetim açılan kutu ise "mtn_dovizcinsi" yerine "acl_dovizcinsi" şeklinde adlandırmanız daha doğru olacaktır.

Teşekkür ederim verdiğiniz cevap için tam olarak istediğim şey oldu. Fakat dediğim gibi seçim alanında birden fazla seçim varsa sıkıntı oluyor. Bu seçimlerden kafasına göre birini alıyor sanırım. Ve dediğiniz gibi kur için başka bir seçimi yapıldığında tek tek ürünlerin içine girip tekrar hesaplatma yapıp kaydetmem gerekiyor. Burada tek tek uğraşmanın olmaması lazım. Hangi kuru seçersek bütün ürünlere o kura göre TL çevirimi otomatik yapması lazım. Ve sadece bir tek kur seçilmesi lazım.

Teşekkürler.
Alıntı:Her şey bir fikirle başlar.
Cevapla
#12
Sayın nightashes,

EK'te;
bahsettiğiniz talebinize yönelik olarak,uygulamanız üzerinde yapılan değişiklikler ve düzeltmeler neticesinde hazırlanmış örnek uygulama mevcuttur.inceleyebilirsiniz.

eklenen örnek uygulamanın kullanımına dair,aşağıdaki açıklamaların yapılması uygun görülmüştür.

1)

[Resim: do.php?imgf=148085994092181.jpg]

Resimde görüleceği üzere;
TANIM_DOVIZ adlı form üzerinde yer alan ve günün tarihini otomatik olarak dahil eden tarih denetiminde eğer o günkü tarih hafta sonuna denk geliyorsa,KUR SORGULA VE KAYDET butonuna tıklandığında resimde görüldüğü üzere uyarı bildirimi ekranda belirecektir.

Hafta için tarihi girmeniz istenecektir.siz de,talep edilene göre bir tarih seçiminde bulunabilirsiniz.

2)

[Resim: do.php?imgf=148085994102412.jpg]

Resimde görüleceği üzere;
Eğer hafta içi tarihi seçimini yaptıktan sonra,tekrar aynı tarih mevcutken,KUR SORGULA VE KAYDET butonuna tıkladığınızda,ilgili TANIM_DOVIZ adlı tabloda aynı tarihli kayıt bilgisinin yer aldığına dair uyarı bildirimi ekranda belirecektir.

Yeni bir tarih seçimi ile yeni bir sorgulama yapabilirsiniz.

3)

[Resim: do.php?imgf=148085994105633.jpg]

Resimde görüleceği üzere;
URUN_YENI adlı form üzerinde kayıt işlemi gerçekleştirirken,Kur Tarihi denetiminde (aynı zamanda,otomatik değer olarak günün tarihi gösterilmektedir.sonradan tercihe göre istenilen tarih seçilebilmektedir.) hafta sonuna denk gelen bir tarih mevcutken,eğer Döviz Cinsi olarak DOLAR ya da EURO seçilirse;kur işleminin uygulanmayacağını ve hesaplama işlemi sonucu olarak da 0 (Sıfır) değeri olarak geçerli sayılmak sureti ile işlem sonucu ALISFIYATITL denetiminde gösterilmesi sağlanır.

4)

[Resim: do.php?imgf=148085996865511.jpg]

Resimde görüleceği üzere;
URUN_YENI adlı form üzerinde kayıt işlemi gerçekleştirirken,eğer Kur Tarihi hafta içi değerine ve aynı zamanda TANIM_DOVIZ adlı tabloda da mevcutsa,gerekli hesaplamalar yapılmak sureti ile sonucun ALISFIYATITL denetiminde gösterilmesi sağlanır.

bilginize...iyi çalışmalar,saygılar.
.rar nightashes.03122016_a-ATOZ2.rar (Dosya Boyutu: 47,19 KB | İndirme Sayısı: 4)
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da