Tablomda bulunan bir alan (okulu) alanında bulunan değerlerin baş harflerini nasıl alırım.
Örneğin
Ankara Fen Lisesi olan metini A.F.L yapmak istiyorum.
=Mid([okulu];39;Len([okulu]))
=Left([Metin353];1)
bunları kullanıyorum ama tek tek saydırmak zor oluyor. Alanda kaç kelime varsa sadece baş harflerini aralarına nokta koyarak almak istiyorum.
Split(metin, " ") komutuyla metni bölüp ilk harflerini alabilirsiniz
Public Function SplitVeriBul(GVeri As String, GSayi) As Variant
On Error Resume Next
Dim var As Variant
var = Split(GVeri, " ", -1)
SplitVeriBul = var(GSayi)
End Function
SELECT SplitVeriBul([okulu],0) AS ilksayi, SplitVeriBul([okulu],1) AS ikincisayi, SplitVeriBul([okulu],2) AS ucuncucisayi, SplitVeriBul([okulu],3) AS drtsayi, SplitVeriBul([okulu],4) AS besayi, SplitVeriBul([okulu],5) AS alsayi, SplitVeriBul([okulu],6) AS yedsayi, ([ilksayi]) & ([ikincisayi]) & Left([ucuncucisayi],1) & Left([drtsayi],1) & Left([besayi],1) & Left([alsayi],1) & Left([yedsayi],1) AS birlestir
FROM Tblogrenci;
SAyın hocam böyle bir yöntemle yaptım ama, birleştirme kısmında sonucun şöyle olması lazım; ama yapamadım
veri: Mimarsinan Meslek ve Teknik Anadolu Lisesi diyelim
sonuç:Mimarsinan M.T.A.L olması lazım
ilk mesajınızda sadece ilk harfleri almaktan bahsetmiştiniz ama son mesajınızda Mimarsinan kısmının hepsi alınmış. hangisi olacak?
Hocam raporda alan kalmadı. Son haliyle şöyle diyeyim. M.M.v.T.A.L şeklinde olması gerek
fonksiyonu aşağıdaki gibi düzenleyip
Function IlkHrf(xOkul As String) As String
If Len(xOkul & "") = 0 Then Exit Function
Dim Dz As Variant
xOkul = Trim(xOkul)'<---Eklenen
Dz = Split(xOkul, " ")
For Each Itm In Dz
IlkHrf = IlkHrf & "." & Left(Itm, 1)
Next Itm
IlkHrf = Mid(IlkHrf, 2)
End Function
sorgu kodunu da aşağıdaki gibi
SELECT IlkHrf([okulu] & "") AS Okul
FROM TbLogrenci;
fazladan boşlukları silme kodunu eklememişim onu ekledim