AccessTr.neT

Tam Versiyon: If-then-else şartını daha kısa nasıl yazabilirim?
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4
Sayın Bilgisayarcı ;
Maalesef verdiğiniz kod çalışmadı(syntax) hatası verdi. 10 tane "(" , 11 tane ")" var. Bunu düzelttikten sonra " Compile error:Method or data member not found" hatasını verdi.
Kod:
Me.Command162.Enabled = (Not ( (nz(Alan49,"-")="-") or (nz(alan50,"-")=50)) or (Nz(Alan51, "0") = "0") Or (Nz(Alan52, "0.0") = "0.0") ))

yerine aşağıdaki olacak.

Kod:
Me.Komut162.Enabled = (Not ((Nz(Alan49, "-") = "-") Or (Nz(Alan50, "-") = "-") Or (Nz(Alan51, "0") = "0") Or (Nz(Alan52, "0.0") = "0.0")))

FAKAT

Veri tabanı yapısı hiç uygun değil,yapılmaması gereken ölümcül hataların nerdeyse tamamı varImg-grin Tablo ilişkilendirme,normalizasyon ....
Hangi ucundan gireyim bilemedim. Kısaltılmış kod yukarıda.
Değerli Bilgisayarcı;
Veritabanı yapısını ben belirlemedim. Bu SGK nın eczane reçete işlediğinde b.syara bıraktığı *csv dosya. Ben bunu alıp 7 tabloya ayırıyorum. Onları örneği buraya ekleyebilmek için sildim. Kısaca anlatayım. Benim tablolarımda ilaçlar ilaç tablosundaki kodlarıyla yeralıyor. Hastalar hasta bilgideki kodlarıyla. Her reçete 2 ayrı tablodan oluşuyor. Ama en iyisi ben size o tablo yapılarını buraya ekleyeyim.
Tamamdır sayın Hayri16.
Bu dosyanın içinde bir çok kişinin sicil numaraları olduğu için kaldırdım.
İçindeki dataları temizleyerek de alabilirdiniz. Bu durumda tabloların ve alanların isimlendirilmesi düzgün görünüyor.
Kodun düzeltilmiş halini de oraya yazdım. Onu çoğaltıp diğer komutlara göre uygulayabilirsiniz.

Peki neden tek bir hamlede csv dosyasından dikret aktarmıyorunuz? Teker teker butonlara tıklayarak aktarmak daha uzun değil mi? Hepsi aktarılsın, sonra istenmeyenler içinden silinir?
Değerli bilgisayarcı neden direkt aktaramadığımı anlatayım;
1- Bildiğiniz gibi csv dosyalarda , ile alanlar birbirinden ayrılıyor. Fakat SGK veritabanında bazı ilaçların adlarında "," var. Özellikle m.g bazındakilerde Örneğin xxxxx 12,5 mg gibi. Böyle olunca Access "," den sonrasını başka bir alan gibi algılıyor ve tüm tablo kayıyor.
2-Burada yine bazı reçeteler kayıt esnasında hasara uğruyor. Bu nedenle ilaçların bazılarında fiyat 0.0 çıkıyor. Şahsa ait aynı ilaçları içeren 2 veya daha fazla reçete gözüküyor.
3-Birde biz bu reçeteleri tek tek elden geçirip eksiklik v.b lerini kontrol etmek zorundayız. Nasılsa tek tek elimden geçecek , kontrol yaparken aktarımımı da yaparım diye düşündüm. Buraya orjinal *csv dosyasını ekliyorum göz atarsanız ne demek istediğimi daha iyi anlarsınız.
Not: Dosyayı Excel ile açmayınız alanların hepsi sığmıyor. Notepadle açarsanız veri kaybı oluşmaz.
Sayın Bilgisayarcı;
Ellerinize sağlık. Şu anda çalışıyor. Fakat "0.0" değerini kontrol etmiyor. Orada ne gibi değişiklik yapmam lazım. (sizde dosya var. 9.kayda gittiğinizde 1. ilaç fiyatı "0.0" olmasına rağmen komut tuşu true durumda)
Saygılarımla...
küçük bir eklenti:
alanın boş olup olmadığını örneğin Isnull([Alan1]) şeklinde yazarak kesin sonuçlandırabiliriz.
Alanın dolu olduğunu (yani boş değil) olarak sorgulamak için de Isnull([Alan1])=False örneği ile sonuçlandırabiliriz.

Ayrıca kolaylık olması açısından "kurum kodundan kurum belirleme" olayını "işlem no dan eczane belirleme" alıyını neden bir tablo açarak ilgili kayıtları yapıp gerektiğinde tablodan seçim yaparak işlemlerinizi gerçekleştirmiyorsunuz. böylesi daha rahat olmaz mı? çünkü istediğiniz zaman bu kayıtlarda değişiklikleri yapma şansınız olur.
Sayfalar: 1 2 3 4