Skip to main content

AccessTr.neT


Belli Bir Karaktere Kadar Parça Alma

Belli Bir Karaktere Kadar Parça Alma

Çözüldü #1
Merhabalar,
bir tablomda gider tanımları yeralıyor, bu gider tanımları 2 farklı gösterimde.
Örneğin;
1.   Yakıt / 34 ABC 123 -->150 TL
2.   Kargo --> 40 TL

yukarıdaki gibi bazı tanımlarda ilk tanımdan sonra "/" karakteri, bazı tanımlarda ilk tanımdan sonra  "-->" karakterleri bulunmakta. ben bir sorgu ile bu alan değerlerinden ilk bölümlerini yazdırmak istiyorum.
yani sorgum sonucunda bana,
Yakıt
Kargo
Maaş
Avans
Fazla Mesai
Çek Senet
Mutfak
gibi listelemesini istiyorum.
bunu nasıl yapabilirim?
Saygılarımla.
Cevapla
#2
Merhabalar,
problemimi şu şekilde çözdüm;
ilk_tanim: IIf((InStr(1;[gider_tanim];"/";1)-2)>0;Left([gider_tanim];InStr(1;[gider_tanim];"/";1)-2);Left([gider_tanim];InStr(1;[gider_tanim];"-->";1)-2))
Cevapla
#3
öncelikle bir çalışmanıza bir modül ekleyip aşağıdaki kodu yapıştırın
Function BasAl(TxtAlan As String) As String
Dim x, y, xy As Integer
x = InStr(1, TxtAlan, " /")
y = InStr(1, TxtAlan, " -->")
If x < y And x > 0 Then xy = x - 1 'TxtAlan = Mid(TxtAlan, 1, x - 1)
If y < x And y > 0 Then xy = y - 1 'TxtAlan = Mid(TxtAlan, 1, y - 1)
If x > 0 And y = 0 Then xy = x - 1
If y > 0 And x = 0 Then xy = y - 1
If y = 0 And x = 0 Then xy = Len(TxtAlan)
BasAl = Mid(TxtAlan, 1, xy)
End Function
sonra da sorgunuzun ilgili alanına aşağıdaki kodu yazın
alan1: BasAl([TabloAdi]![AlanAdi])
Cevapla
#4
(24/05/2019, 12:31)haliliyas yazdı: öncelikle bir çalışmanıza bir modül ekleyip aşağıdaki kodu yapıştırın
Function BasAl(TxtAlan As String) As String
Dim x, y, xy As Integer
x = InStr(1, TxtAlan, " /")
y = InStr(1, TxtAlan, " -->")
If x < y And x > 0 Then xy = x - 1 'TxtAlan = Mid(TxtAlan, 1, x - 1)
If y < x And y > 0 Then xy = y - 1 'TxtAlan = Mid(TxtAlan, 1, y - 1)
If x > 0 And y = 0 Then xy = x - 1
If y > 0 And x = 0 Then xy = y - 1
If y = 0 And x = 0 Then xy = Len(TxtAlan)
BasAl = Mid(TxtAlan, 1, xy)
End Function
sonra da sorgunuzun ilgili alanına aşağıdaki kodu yazın
alan1: BasAl([TabloAdi]![AlanAdi])

Sizin yöntem daha profesyonel görünüyor, çok teşekkür ederim. Sorunum çözülmüştür.
Cevapla
#5
sizinki daha şiirsel ))
/ ile --> arasında öncelik sırası var mı?
Cevapla
#6
(24/05/2019, 12:39)haliliyas yazdı: sizinki daha şiirsel ))
/ ile --> arasında öncelik sırası var mı?

Img-grin Img-grin 

öncelik sırası olarak düşünebilir miyiz bilemem ama örnekte de görüleceği üzere "/" içeren tanımların devamında "-->" da bulunmakta, bundan dolayı yorumumda yazdığım sorgu ifadesinde önce "/" kontrolü, ardından "-->" kontrolü yer almaktadı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