AccessTr.neT
Birinci Alanda Geçen Herhangi Bir Kelime İkinci Alanda Varsa İstenilen Alana "x" Yazd - 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ığı: Birinci Alanda Geçen Herhangi Bir Kelime İkinci Alanda Varsa İstenilen Alana "x" Yazd (/konu-birinci-alanda-gecen-herhangi-bir-kelime-ikinci-alanda-varsa-istenilen-alana-x-yazd.html)

Sayfalar: 1 2 3 4


Re: Birinci Alanda Geçen Herhangi Bir Kelime İkinci Alanda Varsa İstenilen Alana - onur_can - 18/09/2024

Şunu söyleyebilirm, konuya tam hakim olamadığım için anlattıklarınızdan yola çıkarak istenilen yere X ifadesini kullanmışsınız burası net değil.
çözüm yolu olarak size iç içe IIF komutunu kullanmanızı öneririm. Doğru ifadeyi ve değişkenleri doğru yere yerleştirerek sonuç alabilirsiniz.
Örnek Link;
https://accesstr.net/konu-ic-ice-iif-kullanimi.html

1.Şart olmazsa 2.Şarta Bak, 2.Şart olmazsa 3.Şarta Bak, 3.Şart olmazsa 4.Şarta bak.......Hiçbir şart sağlanmazsa birşey yapma boş geç gibi.......


RE: Birinci Alanda Geçen Herhangi Bir Kelime İkinci Alanda Varsa İstenilen Alana "x" Yazd - sevincili - 19/09/2024

ilginizden dolayı çok teşekkür ederim
inceleyeceğim.


RE: Birinci Alanda Geçen Herhangi Bir Kelime İkinci Alanda Varsa İstenilen Alana "x" Yazd - berduş - 19/09/2024

Regular Expression kullanılarak yapılabilir ama  ne kadar sağlıklı olur emin değilim.
cümleyi boşluklara göre parçalayıp içerik kontrolü sağlanabilir ama boşluk yerine noktalama işareti kullanılmışsa yada
birleşik kelimeler varsa sorun çıkar. mesela "veli" kelimesi aranıyorsa "develi" kelimesi de doğru kabul edilebilir. onu engellemek için aranan "veli" yerine " veli " yazılabilir bu durumda da "." ile bitenler bulunmayabilir.
ben her kelimenin " " boşluk ile ayrıldığını ve noktalama işareti kullanılmadığını varsaydım


Yapılacaklar:
1 - çalışmanıza bir modül ekleyip modüle aşağıdaki kodu yapıştırın
Function xRegEx(xBol As String, xKontrol As String) As Boolean
xRegEx = False
xBol = Replace(xBol, " ", " | ")
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
    .IgnoreCase = True
    .Global = True
    .MultiLine = True
    .Pattern = "(" & xBol & ")"
    xRegEx = .Test(" " & xKontrol & " ")
End With
End Function
2 - bir sorgu oluşturup aşağıdaki kodu kullanın
update [sıemens] set statu="x" WHERE (((xRegEx([sıemens]![GIRDI_FIRMA],[sıemens]![NMCRL_NCAGEName]))=-1));

bu güncelleme sorgusunu çalıştırdığınızda statu alanı otomatik olarak güncellenir.
dilerim işinize yarar

Not: CreateObject("VBScript.RegExp")  regexpi kullanabilmeniz için gerekli kütüphanedir istenirse
Microsoft VBScript Regular Expressions referansı ile bu sağlanabilmektedir.
VBA Editöründe( ALT+F11) iken menüden Tools / References … tıklanır.
Açılan pencerede listeden Microsoft VBScript Regular Expressions seçilip OK tıklanır.

Not2: tablonuzun adı "sıemens" yani küçük I kullanılmış İngilizcede küçük ı harfi yoktur. çalışmalarınızda İngilizcede kullanılmayan karakterler kullanmanız sorun çıkarabilir
forumda tablo-alan-nesne isimlendirme kurallarıyla ilgili bilgilendirme mevcuttur.
iyi çalışmalar


RE: Birinci Alanda Geçen Herhangi Bir Kelime İkinci Alanda Varsa İstenilen Alana "x" Yazd - sevincili - 19/09/2024

Berduş hocam ilginizden dolayı çok teşekkür ederim.

genelde tablo adlarında büyük harf kullanmaktayım örnekte yanlışlıkla küçük harf kullanmışım.
tablo adını güncelledim.
yolladığınız modül ü yapmaya çalıştım sorguyu da yaptım ancak hata verdi sıkıntı nerede anlamadım
dosyayı ekte yolluyorum mümkünse bi bakabilir misiniz? nerede hata yaptım.
şimdiden çok teşekkür ediyorum.


RE: Birinci Alanda Geçen Herhangi Bir Kelime İkinci Alanda Varsa İstenilen Alana "x" Yazd - berduş - 19/09/2024

xRegEx fonksiyonunu 2 ayrı modülde kullanmışsınız
fonksiyonlar yerel/public tanımlanmadıkları için aynı ada sahip 2 fonksiyon olamaz
fonksiyonlardan birini silerseniz çalışması gerek


RE: Birinci Alanda Geçen Herhangi Bir Kelime İkinci Alanda Varsa İstenilen Alana "x" Yazd - berduş - 19/09/2024

gerçi yukardaki yöntem sadece "x" yazmak için işe yarar,
eğer veri değiştirilmişse daha önceden "x" yazan alanlar değişmez onların da değiştirilmesini istiyor musunuz?