String İçinden Belirli Bir Kısmını Almak

1 2 3 4
08/04/2020, 22:26

berduş

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
08/04/2020, 22:41

feraz

(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ış  
    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
08/04/2020, 22:45

berduş

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.
08/04/2020, 22:53

feraz

(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
08/04/2020, 23:59

accessman

çok teşekkürler ellerinize sağlık
09/04/2020, 09:57

ozanakkaya

(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.
1 2 3 4