Skip to main content

AccessTr.neT


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

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

#13
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
Cevapla
#14
(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
Cevapla
#15
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.
Cevapla
#16
(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
Cevapla
#17
çok teşekkürler ellerinize sağlık
Cevapla
#18
(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.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task