Skip to main content

AccessTr.neT


metin ayırma

metin ayırma

Çözüldü #1
iyi günler
biliyorum daha önce buna benzer sorular ve cevaplar vardı ama ben yapamadım
eklediğim örnekteki tabloda her kayıtta bir veya birden fazla hastalık ismi yazıyor
birden fazla olanlar virgül ile ayrılmış durumda
bana lazım olan bu hastalıkların listesi
yani metin kutusundaki virgül aralarındaki hastalık isimlerini
ayırıp ayrıca bir tablo yapmam lazım
bu yaptığım tabloda her hastalık bir kez geçecek ve her kayıtta sadece bir hastalık ismi yazacak
yani
hipertansiyon ,dorsalji ,dermatit
şeklinde olan kayıt

hipertansiyon
dorsalji
dermatit

şekline gelecek

yardımlarınız için teşekkürler
.rar hastalıklar.rar (Dosya Boyutu: 339,24 KB | İndirme Sayısı: 13)
@benbendedeilem
Cevapla
Çözüldü #2
sn.hayri16 arkadaşımızın yapmış olduğu linkdeki program metin ayırma yapıyor ama her kayıtta sadece bir kez yapıyor
bunu benim örneğime nasıl adapte edebiliriz

https://accesstr.net/konu-metini-ikiye-a...=ay%C4%B1r
@benbendedeilem
Son Düzenleme: 12/03/2010, 15:17, Düzenleyen: accessman.
Cevapla
Çözüldü #3
Sayın accessman sizin de belirttiğiniz gibi benim örneğim "ikiye" bölüyor. Üçe ve daha fazlaya bölmek için şöyle bir yol izleyebiliriz. Burada "instr" fonksiyonunu devreye sokacağız. Bu fonksiyon metin içerisinde belirttiğimiz karakterin kaçıncı sırada olduğunu verir. Instr(Metin,"karakter"). Bunu bir değişkene atadığımızda bize sayısal değer verir.
Buna göre tekrar yazmaya başlayalım.
Kod:
Dim bolum1, bolum2 as integer
Dim Metin1,Metin2,Metin3 as string

bolum1=instr(Anametin,",")
           'ilk virgülün yerini buluyoruz
metin1=left(Anametin,bolum1-1)
           'Ana metinden virgüle kadar olan kısmı alıp Metin1 değeri elde ediyoruz.
bolum2=instr(bolum1+1,Anametin,",")
           '2.virgülün yerini bulmak için "bolum1+1" instr fonksiyonunda kaçıncı  
           'karakterden sonra arama yapacağını belirtir.  
metin2=mid(Anametin,bolum1+1,bolum2 -(bolum1+1))
            'anametinin ilk virgülden sonraki kısmından ikinci virgülü bulduğumuz
            'kısımdan ilk virgülden sonrakini çıkararak bulduğumuz uzunluk kadar
            'karakteri al Metin2 adlı değişkene ata.
Metin3=right(Anametin,(len(anametin)-bolum2+1))
            'Anametinin sağdaki kısmundan 2.virgüle kadar olan kısmı metin3 değişkenine  
            'atıyoruz.

Bunun mutlaka daha kolay ve daha kısa yolları vardır. Ama benim bilebildiğim ve yapabildiğim bu.
Burada aklıma gelen bir sorun var. Eğer virgülden sonra boşluk bırakılmışsa ne olur bilemiyorum Img-grin
Umarım işine yarar. Kal sağlıcakla.
---------------------------------------------------
Sayın Accessman;
Sanırım sorunuzu yanlış anlamışım. Şimdi dosyanıza baktım. Yapmak istediğiniz teşhisleri tek tek ayırmak. Ve kayıtlarda standart değer yok. Bu durumda nasıl yapılabilir düşünmek lazım. Aklıma ilk gelen yol ayrı bir tanı tablosu hazırlamak. Bununla hasta için düşünülen teşhisi ilişkilendirmek. Faydası olur umuduyla ülkemizde standart hale gelen SGK nin kabul ettiği teşhis ve kodları tablosunu yolluyorum.
.xlsx TESHISKODLARI.xlsx (Dosya Boyutu: 114,22 KB | İndirme Sayısı: 18)
Hayri16, 12-11-2009 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 12/03/2010, 19:16, Düzenleyen: Hayri16.
Cevapla
Çözüldü #4
benim içnde böyle bir kod lazımdı
soru ve cevap için teşekkürler
Masalcı, 21-01-2010 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 12/03/2010, 19:29, Düzenleyen: Masalcı.
Cevapla
Çözüldü #5
teşekkürler Sn.hayri16
bu kod bir çok kişinin de işini görebileceği için eğer yapabilirseniz her teşhisi ayrı ayrı kayıtlara yazmak çok güzel olurdu
@benbendedeilem
Cevapla
Çözüldü #6
Yeni bir tablo oluşturdum ve bütün TANI'ları bu tabloya kaydettirip gruplattırdım.
.rar hastalıklar.rar (Dosya Boyutu: 246,29 KB | İndirme Sayısı: 50)
Saygılar, iyi çalışmalar.
*********
Kod, formül vs bilmek önemlidir ama mantığını yürütebilmek, nerede ve nasıl kullanılacağını bilmek daha önemlidir.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task