AccessTr.neT
String İçinden Belirli Bir Kısmını 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ığı: String İçinden Belirli Bir Kısmını Almak (/konu-string-icinden-belirli-bir-kismini-almak.html)

Sayfalar: 1 2 3 4


Cvp: String İçinden Belirli Bir Kısmını Almak - berduş - 08/04/2020

Yalniz @feraz bey topu topu 4 olasılık var bir de arada 1den fazla bosluk olabilme ihtimali
Gecici=Trim(metin) 
tüm fazla boşlukları teke düşürür
Aşağıdaki 3 satır olasılıkları teke düşürür
Gecici=Replace(Gecici, "% 52", "%52")
Gecici=Replace(Gecici, "52%", "%52")
Gecici=Replace(Gecici, "52 %", "%52")
Gerisi sadece replace ile %52'yi istenen degerle degistirmek yada eğer ayrı bir sütuna eklenecekse
If instr ile kontrol edip varsa yeni alana eklemek
Atladığım nokta neresi? Dizi kullanmaya gerek var mı burada


Cvp: String İçinden Belirli Bir Kısmını Almak - feraz - 08/04/2020

(08/04/2020, 22:26)berduş yazdı: Yalniz @feraz bey topu topu 4 olasılık var bir de arada 1den fazla bosluk olabilme ihtimali
Gecici=Trim(metin) 
tüm fazla boşlukları teke düşürür
Aşağıdaki 3 satır olasılıkları teke düşürür
Gecici=Replace(Gecici, "% 52", "%52")
Gecici=Replace(Gecici, "52%", "%52")
Gecici=Replace(Gecici, "52 %", "%52")
Gerisi sadece replace ile %52'yi istenen degerle degistirmek yada eğer ayrı bir sütuna eklenecekse
If instr ile kontrol edip varsa yeni alana eklemek
Atladığım nokta neresi? Dizi kullanmaya gerek var mı burada

Split ilede alttaki gibi aptım hocam.

Sizin kod neree eklenecek?
Varsayıma göre aptık gerisi accessman hocamıza kalmış Img-grin
 
    Dim arr1, arr2
    Dim i As Integer
    Dim say As Integer
   
    If IsNull(Metin1.Value) Or Metin1.Value = "" Then Exit Sub
    arr1 = Array("%52", "% 52", "52%", "52 %")
    arr2 = Array(3, 4, 3, 4) 'uzunluk
    say = 0
    With Me.Metin1
        For i = LBound(arr1) To UBound(arr1)
            If InStr(.Value, arr1(i)) > 0 Then
                say = say + 1
                MsgBox Split(.Value, arr1(i))(0) & Split(.Value, arr1(i))(1)
                Exit For
            End If
        Next
    End With

    If say = 0 Then MsgBox "Aranan bulunamadi"
    Erase arr1: Erase arr2



Cvp: String İçinden Belirli Bir Kısmını Almak - berduş - 08/04/2020

Modüle tanımlanan bir fonksiyon olursa sorguda da kullanilabilir. Böylece update ile tablo da güncellenebilir.
Ayrıca split() ile metinde kactane %52 geçtiği de bulunabilir.


Cvp: String İçinden Belirli Bir Kısmını Almak - feraz - 08/04/2020

(08/04/2020, 22:45)berduş yazdı: Modüle tanımlanan bir fonksiyon olursa sorguda da kullanilabilir. Böylece update ile tablo da güncellenebilir.
Ayrıca split() ile metinde kactane %52 geçtiği de bulunabilir.

Herzamanki gibi varsayımlara göre gidiyyoruz sağolsun accessman hocamız dosya hazırlamadığı için.
Dediğimiz gibi biz ol gösterdik Img-grin


Cvp: String İçinden Belirli Bir Kısmını Almak - accessman - 08/04/2020

çok teşekkürler ellerinize sağlık


Cvp: String İçinden Belirli Bir Kısmını Almak - ozanakkaya - 09/04/2020

(08/04/2020, 17:24)ozanakkaya yazdı: Modüle;

Function SayiBul(ByVal GVeri As String) As Long

Dim GMetin As String
Dim GGenislik  As Integer
Dim GSayi As Integer

    GMetin = Right(Left(GVeri, InStr(1, GVeri, "%") - 1), 3) & Left(Mid(GVeri, InStr(1, GVeri, "%") + 1), 3)
    GGenislik = Len(GMetin)
    GSayi = 1
    Do
      If Mid(GMetin, GSayi, 1) <> " " And Not IsNumeric(Mid(GMetin, GSayi, 1)) Then
          GMetin = Left(GMetin, GSayi - 1) + Mid(GMetin, GSayi + 1)
        GSayi = GSayi - 1
      End If
      GSayi = GSayi + 1
    Loop Until Val(GMetin) > 0
    SayiBul = Val(GMetin)

End Function

Kodu ekle. Sorguya da,

sonuc: SayiBul([metninbulundugualanadi])

kodu ekle.

Konunuz "Visual Basic Örnek Uygulamaları" bölümüne açılmış. Sorunuz Visual Basic mi? Access mi??



Bu konu ve bir önceki konuniza yazdığım cevaplara göre, tarafımca yazılan cevapların hiçbir anlam ifade etmediği anlaşılıyor.  

Konunuz cevaplandığına göre taşınmıştır.