Sayın Hocalarım,
Ekteki çalışmada ;
-Müşteri Cari formunda ,Ödemetutarına veri girildiğinde girilen tutarın Toplam alacaktan fazla veya eksik olması durumunda,
-Odemetutarı girildikten sonra girilen tutarın değiştirilmesi veya silinmemesi için ne yapılabilir,
Saygılarımla.
Tahsilat tutarının alacaktan eksik ve fazla olması hk.
Öncelikle 2 hususu düzeltelim.
sub Hesapla kodunda
Me.tutarı = (Me.satfıyatı * Me.kdv / 100) + Me.satfıyatı * Me.mıktar
şeklinde yazılmış, sanırım bu kod eksik hesaplıyor.
10 adet, satış fiyatı 21.60, kdv 8
bunu 217,728 olarak hesaplıyor. Bunun galiba 233,28 olması gerekiyor.
metin kutusunun biçim özelliğine #.##0,00 ₺;-#.##0,00 ₺ yazdığın için 217,728'i 217,73 olarak görüyorsun
iskonto yaparken 217,73 olarak gördüğün için 0,73 yazıyorsun ve 0,002 ₺ eksik hesaplayıp tabloya 216,998 olarak hesaplıyor
hesaplama kodunun
Me.tutarı = Round((Me.satfıyatı * Me.mıktar * Me.kdv / 100), 2) + Me.satfıyatı * Me.mıktar
şeklinde değiştirilmesi gerekli,
hesaplarkan round..... 2 yazdığm için yuvarlamayı hesaplarken yapacak ve yuvarlanmış olarak kaydedecek.
bu kodu uygulayıp deneyin, sonuç hakkında bilgi verin. Eksik/fazla olayına bakarız.
sub Hesapla kodunda
Me.tutarı = (Me.satfıyatı * Me.kdv / 100) + Me.satfıyatı * Me.mıktar
şeklinde yazılmış, sanırım bu kod eksik hesaplıyor.
10 adet, satış fiyatı 21.60, kdv 8
bunu 217,728 olarak hesaplıyor. Bunun galiba 233,28 olması gerekiyor.
metin kutusunun biçim özelliğine #.##0,00 ₺;-#.##0,00 ₺ yazdığın için 217,728'i 217,73 olarak görüyorsun
iskonto yaparken 217,73 olarak gördüğün için 0,73 yazıyorsun ve 0,002 ₺ eksik hesaplayıp tabloya 216,998 olarak hesaplıyor
hesaplama kodunun
Me.tutarı = Round((Me.satfıyatı * Me.mıktar * Me.kdv / 100), 2) + Me.satfıyatı * Me.mıktar
şeklinde değiştirilmesi gerekli,
hesaplarkan round..... 2 yazdığm için yuvarlamayı hesaplarken yapacak ve yuvarlanmış olarak kaydedecek.
bu kodu uygulayıp deneyin, sonuç hakkında bilgi verin. Eksik/fazla olayına bakarız.
Sayın fascioglu,
öncelikle;her ne kadar sizden bir yanıt gelmemesine rağmen,sayın ozan bey'in bilgilendirmelerine ilave olması adına,aşağıda bahsi geçen tavsiyelerde bulunarak,kullanım süreçleri nezdinde uygulamanızın daha verimli ve daha olumlu sonuçlar almanızı ve ileride bu nedenlerden dolayı oluşabilecek sorunları azaltmanızı sağlamanıza imkan vereceğini belirtmek yerinde olacaktır kanısındayım.
TAVSİYELER
1) Lütfen;tablo ve alan adlarında isimlendirmelerde bulunurken;Türkçe karakterler kullanmayınız.
2) İsimlendirmelerde büyük harfler kullanmayınız.
3) Teferruatlı değil de,kısa ve öz isimlendirmelerde bulununuz.
4) Kelime aralarını boş bırakmayınız ve boşluklar yerine alt tire (_) işareti kullanınız.
5) kod sayfanızda,ilk başlangıç satırında; Option Compare Database ifadesinin yerine,Option Explicit ifadesinin yer almasına özen gösteriniz.
Fakat,eğer kodlarınız genelinde;ilk satırında SADECE Option Compare Database ifadesi yazıyorsa veya Olay Yordamları içerisinde On Error Resume Next ifadesi yer alıyorsa;yukarıda yazılı maddelerdeki hataları görme imkanı vermeksizin uygulamanın işleyişte bulunmasına devam eder.
Bu nedenle,ileride çeşitli nitelikte sorunlara veya hatalara maruz kalmamak adına,her zaman uygulamalarınızdaki kod sayfasında ilk satırda Option Explicit ifadesinin yer almasına önem vererek özen göstermeye gayret ediniz. OptionExplicit ifadesinin gerekliliğini belirtmek için,aşağıdaki tanımlamalar yeterli olacaktır kanısındayım.
Option Compare Database (seçenek karşılaştırma);
ikili değer,metin değeri,dize karşılaştırmalarında tanımlı değerlerin karşılaştırmasını yapmak için kullanılır.veritabanının sıralama kodlaması tarafından belirlenir.
Option Explicit (Belirgin seçenek);
uygulamada kullanılmakta olan değişken isimlerinde bir hata söz konusu olduğunda tanımsız bir değişken kullanıldığına dair bu hatayı bildirerek,değişken isimlerinin Dim, Private, Public, ReDim veya Statik deyimi ile doğru tanımlanmasına bir zorunluluk getirir. Böylece,uygulamanın bu hatalardan arınarak sağlıklı çalışmasına imkan sağlar.
Option Explicit ifadesinin her uygulama hazırlayacağınız zaman,kod sayfasında sürekli otomatik olarak yer almasını sağlamak için de,kodlama sayfasında iken,üst menüden TOOLS - OPTIONS - EDITOR sekmesindeki REQUIRE VARIABLE DECLERATION satırını işaretleyip Tamam diyerek çıkınız.
Son olarak,EK'te;
bahsettiğiniz talebinize yönelik olarak hazırlanmış örnek uygulama mevcuttur.inceleyebilirsiniz.
YAPILAN İŞLEME DAİR VERİ GİRİŞİ KULLANIMI
frm_MUSTERICARİ adlı formun aynı adlı alt formunun Geçerli Olduğunda olay yordamına uygun kod ifadeleri yazılmak sureti ile,eğer ödeme tutarında değer varsa odemetut adlı metin denetim kutusu kilitleniyor.eğer bu denetimde değer yoksa kayıt kilidi aktif durumda ve istenilen değer yazılabilir.
frm_MUSTERICARİ adlı formun aynı adlı alt formundaki odemetut adlı metin denetim kutusunda yazılı bir değeri değiştirmek için,ilgili alt formdaki odemetut_Etiket adlı etikete tıklandığında odemetut adlı metin denetim kutusunun ilgili denetimin kilidi açılmaktadır.
Aynı şekilde,ödeme tutarı girildikten sonra odemetut adlı metin denetim kutusunun Çıkıldığında olay yordamına tekrar ilgili denetimin kilidi aktifleştirilmektedir.eklenen örnek uygulama SADECE ödeme tutarı için veri değiştirme ya da silme işlemi üzerinedir.harici bir çalışma yapılmamıştır.bilginize…iyi çalışmalar,saygılar.
öncelikle;her ne kadar sizden bir yanıt gelmemesine rağmen,sayın ozan bey'in bilgilendirmelerine ilave olması adına,aşağıda bahsi geçen tavsiyelerde bulunarak,kullanım süreçleri nezdinde uygulamanızın daha verimli ve daha olumlu sonuçlar almanızı ve ileride bu nedenlerden dolayı oluşabilecek sorunları azaltmanızı sağlamanıza imkan vereceğini belirtmek yerinde olacaktır kanısındayım.
TAVSİYELER
1) Lütfen;tablo ve alan adlarında isimlendirmelerde bulunurken;Türkçe karakterler kullanmayınız.
2) İsimlendirmelerde büyük harfler kullanmayınız.
3) Teferruatlı değil de,kısa ve öz isimlendirmelerde bulununuz.
4) Kelime aralarını boş bırakmayınız ve boşluklar yerine alt tire (_) işareti kullanınız.
5) kod sayfanızda,ilk başlangıç satırında; Option Compare Database ifadesinin yerine,Option Explicit ifadesinin yer almasına özen gösteriniz.
Fakat,eğer kodlarınız genelinde;ilk satırında SADECE Option Compare Database ifadesi yazıyorsa veya Olay Yordamları içerisinde On Error Resume Next ifadesi yer alıyorsa;yukarıda yazılı maddelerdeki hataları görme imkanı vermeksizin uygulamanın işleyişte bulunmasına devam eder.
Bu nedenle,ileride çeşitli nitelikte sorunlara veya hatalara maruz kalmamak adına,her zaman uygulamalarınızdaki kod sayfasında ilk satırda Option Explicit ifadesinin yer almasına önem vererek özen göstermeye gayret ediniz. OptionExplicit ifadesinin gerekliliğini belirtmek için,aşağıdaki tanımlamalar yeterli olacaktır kanısındayım.
Option Compare Database (seçenek karşılaştırma);
ikili değer,metin değeri,dize karşılaştırmalarında tanımlı değerlerin karşılaştırmasını yapmak için kullanılır.veritabanının sıralama kodlaması tarafından belirlenir.
Option Explicit (Belirgin seçenek);
uygulamada kullanılmakta olan değişken isimlerinde bir hata söz konusu olduğunda tanımsız bir değişken kullanıldığına dair bu hatayı bildirerek,değişken isimlerinin Dim, Private, Public, ReDim veya Statik deyimi ile doğru tanımlanmasına bir zorunluluk getirir. Böylece,uygulamanın bu hatalardan arınarak sağlıklı çalışmasına imkan sağlar.
Option Explicit ifadesinin her uygulama hazırlayacağınız zaman,kod sayfasında sürekli otomatik olarak yer almasını sağlamak için de,kodlama sayfasında iken,üst menüden TOOLS - OPTIONS - EDITOR sekmesindeki REQUIRE VARIABLE DECLERATION satırını işaretleyip Tamam diyerek çıkınız.
Son olarak,EK'te;
bahsettiğiniz talebinize yönelik olarak hazırlanmış örnek uygulama mevcuttur.inceleyebilirsiniz.
YAPILAN İŞLEME DAİR VERİ GİRİŞİ KULLANIMI
frm_MUSTERICARİ adlı formun aynı adlı alt formunun Geçerli Olduğunda olay yordamına uygun kod ifadeleri yazılmak sureti ile,eğer ödeme tutarında değer varsa odemetut adlı metin denetim kutusu kilitleniyor.eğer bu denetimde değer yoksa kayıt kilidi aktif durumda ve istenilen değer yazılabilir.
frm_MUSTERICARİ adlı formun aynı adlı alt formundaki odemetut adlı metin denetim kutusunda yazılı bir değeri değiştirmek için,ilgili alt formdaki odemetut_Etiket adlı etikete tıklandığında odemetut adlı metin denetim kutusunun ilgili denetimin kilidi açılmaktadır.
Aynı şekilde,ödeme tutarı girildikten sonra odemetut adlı metin denetim kutusunun Çıkıldığında olay yordamına tekrar ilgili denetimin kilidi aktifleştirilmektedir.eklenen örnek uygulama SADECE ödeme tutarı için veri değiştirme ya da silme işlemi üzerinedir.harici bir çalışma yapılmamıştır.bilginize…iyi çalışmalar,saygılar.
Sayın hocalarım,
Göstermiş olduğunuz emek ve sabır dan dolayı çok teşekkür ederim,konu çözülmüştür.
Saygılarımla.
İyi çalışmalar.
Göstermiş olduğunuz emek ve sabır dan dolayı çok teşekkür ederim,konu çözülmüştür.
Saygılarımla.
İyi çalışmalar.
Konuyu Okuyanlar: 1 Ziyaretçi