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
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.
TESHISKODLARI.xlsx
(Dosya Boyutu: 114,22 KB | İndirme Sayısı: 18)
Hayri16, 12-11-2009 tarihinden beri AccessTr.neT üyesidir.