AccessTr.neT
verideki belli bir bölümü almak - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: verideki belli bir bölümü almak (/konu-verideki-belli-bir-bolumu-almak.html)



verideki belli bir bölümü almak - erdem55 - 27/11/2010

Arkadaşlar örnek dosyada 3 ayrı tablom mevcut bunlardan tablo alt olana tablo geçicinin içindeki verileri eklemek istiyorum. buraya kadar sıkıntı yok fakat ben ayrıca gecici dosyadan ekleme yapmadan önce bi kontrol yapmasını ve bu kontrol sonrasında anaid alanına bi id atasın istiyorum.
Anlatamıyorum. bir örnek vereyim
form SORGUr vs neyle olursa olsun geçici tablodaki d:\A\ali\ adlı veriyi çektiğimiz varsayarsak d:\ ve \aliyi silip A harfini tablo anadan kontrol edip id numarasını tblalt ın anaid kismina eklemek istiyorum.
yani tblalt a kaydı alırken
anaid 1 dosya ismi ali dosyayolu d:\a\ali\ olarak kaydetmem gerek ama verilerin sayısı değişik olduğundan len() komutu aklıma geldi ama az önceki nedenden dolayı onuda kullanamıyorum umarım sorunumu anlatabilmişimdir. Yardımcı olan herkese şimdiden çok tşk ederim.


Cvp: verideki belli bir bölümü almak - Hayri16 - 27/11/2010

Sayın erdem55;
aşağıdaki komut
Right(dosya, Len(dosya) - InStrRev(dosya, "\"))
yoluyla birlikte verilen dosya isminin yol kısmını atar.
Örnek verirsek;
dosya="C:\belgelerim\onemli\gecici\deneme.pdf"
olursa
dosya1=Right(dosya, Len(dosya) - InStrRev(dosya, "\"))
dosya1=deneme.pdf
Buradan yola çıkarak istediğinizi gerçekleştirebilirsiniz diye düşünüyorum.
Saygılar.İyi çalışmalar.


Cvp: verideki belli bir bölümü almak - erdem55 - 27/11/2010

(27/11/2010, 21:46)Hayri16 yazdı: Sayın erdem55;
aşağıdaki komut
Right(dosya, Len(dosya) - InStrRev(dosya, "\"))
yoluyla birlikte verilen dosya isminin yol kısmını atar.
Örnek verirsek;
dosya="C:\belgelerim\onemli\gecici\deneme.pdf"
olursa
dosya1=Right(dosya, Len(dosya) - InStrRev(dosya, "\"))
dosya1=deneme.pdf
Buradan yola çıkarak istediğinizi gerçekleştirebilirsiniz diye düşünüyorum.
Saygılar.İyi çalışmalar.

InStrRev() komutunu internette biraz araştırdım. Bundaki işlevde rastladığı ilk / yada belirtilen şarttan sonrası yada öncesi için geçerli oluyor. Bense düşünki C:\belgelerim\onemli\gecici\deneme.pdf
burdaki "belgelerim" yada "onemli" kelimelerini almak istediğimde ikinci /dan itibaren alması gerekecek bu koda ikinci / dan itibaren al dedirtme olanağı varmı acaba? yada 3 cü den itibaren. yani yapmak istediğim şey mümkünmü onuda bilmiyorum ama mümkünse ustadlarımızdan yardım istiyorum.


Cvp: verideki belli bir bölümü almak - Hayri16 - 27/11/2010

Aşağıdaki kodları inceleyin lütfen:
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.



Cvp: verideki belli bir bölümü almak - erdem55 - 28/11/2010

Eline sağlık güzel olmuş ve çok güzel anlatmışsın. Bi denim benim kdlların içine entegre etmeyi en kötü ihtimal tabloyu sildirip yeniden oluştururum gibime geliyo. Çünkü metin uzayınca aradaki cümleyi almak için sağdanda sayım yaptırtıp sağdanda belli bir alanı sildirmek gerekecek. iş uzadıkça uzayacak ister istemez yavaşlama olacak. yinede eline sağlık ekleyip denemeye çalışıcam.


Cvp: verideki belli bir bölümü almak - erdem55 - 28/11/2010

Belki birilerininde işine yara diye eklemek istedim.

Public Function trz(yol As String)
trz1 = InStrRev(yol, "\")
trz2 = Left(yol, trz1 - 1)
trz3 = InStrRev(trz2, "\") + 1
trz = Mid(yol, trz3, (trz1 - trz3))
End Function

trz([dosyayolu])
kod bana ait olmadığından ustada saygı olarak aynen ekliyorum. Umarım benim gibi birilerininde işine yarar.