AccessTr.neT

Tam Versiyon: Belli Bir Karaktere Kadar Parça Alma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
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.
Merhabalar,
problemimi şu şekilde çözdüm;

Visual Basic Code
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))

öncelikle bir çalışmanıza bir modül ekleyip aşağıdaki kodu yapıştırın

Visual Basic Code
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

Visual Basic Code
alan1: BasAl([TabloAdi]![AlanAdi])

(24/05/2019, 12:31)haliliyas Adlı Kullanıcıdan Alıntı: [ -> ]öncelikle bir çalışmanıza bir modül ekleyip aşağıdaki kodu yapıştırın

Visual Basic Code
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

Visual Basic Code
alan1: BasAl([TabloAdi]![AlanAdi])


Sizin yöntem daha profesyonel görünüyor, çok teşekkür ederim. Sorunum çözülmüştür.
sizinki daha şiirsel ))
/ ile --> arasında öncelik sırası var mı?
(24/05/2019, 12:39)haliliyas Adlı Kullanıcıdan Alıntı: [ -> ]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.
Sayfalar: 1 2