Tema: Re: VBA to T-SQL
Autorius: CurrentUser
Data: 2013-07-29 21:27:29
Dedu. Prašymas labai nesityzdavot. Esu tik 'amateur', neturiu jokio IT 
išsilavinimo, bet kai ką pasidarau dėl automatizacijos. Taigi

Function Linksniavimas(Name, Lin As Integer)
On Error Resume Next
Dim ar_su_bruksniu As Integer

ar_su_bruksniu = InStr(1, Name, "-", vbTextCompare) 'nustatoma, ar yra 
stringe brūkšnys
    If ar_su_bruksniu > 0 Then 'jei yra brūkšnys
        Linksniavimas = Bruksnys(Name, Lin) 'su brūkšniu
    Else                        ' jei nėra brūkšnio
        Linksniavimas = separate(Name, Lin) 'be brūkšnio
    End If

End Function
Function Bruksnys(Name, Lin)
On Error Resume Next
Dim pos As Integer
Dim iki_bruksnio, po_bruksnio

    pos = InStr(Name, "-") 'nustatoma, kur yra brūkšnys
    iki_bruksnio = Mid(Name, 1, pos - 1) 'paimamas Str iki brūkšnio
    po_bruksnio = Mid(Name, pos + 1) 'paimamas Str nuo brūkšnio

    Bruksnys = separate(iki_bruksnio, Lin) & "-" & separate(po_bruksnio, 
Lin) 'viskas linksniuojama ir sujungiama

End Function

Function separate(Name, Lin)
On Error Resume Next
Dim num, poz As Integer

If IsNull(Name) Then
    separate = ""
    Exit Function
Else
    Name = Replace(Name, "-", " ")
    seka = Split(Name, , , vbTextCompare) 'Išskirstomi stringo žodžiai į 
Seką
    For num = 0 To UBound(seka)
        zodzio_gal = IIf(linksnis(seka(num), Lin) = "", Right(seka(num), 3), 
linksnis(seka(num), Lin))
        'suformuojama seka iš naujai gautų žodžių
        seka(num) = Replace(seka(num), Right(seka(num), 3), zodzio_gal)
    Next num
End If
separate = Trim(Join(seka)) 'sujungiama seka i nauja string'-a

End Function
'Identifikuojama galūnė
Function linksnis(Name, Lin)
galune = Right(Name, 3)
Select Case galune
    Case "nas"
        linksniai = Array("no", "nui", "ną", "nu", "ne")
    Case "tis"
        linksniai = Array("čio", "čiui", "tį", "čiu", "tyje")
    Case Else
        linksniai = Array("", "", "", "", "")
    End Select

linksnis = linksniai(Lin)

End Function

"zZz"  wrote in message news:kt3uii$vrv$1@trimpas.omnitel.net...

Įmesk kodą ;)

"CurrentUser" <ne_toks@yahoo.com> wrote in message 
news:ks1ht5$tou$1@trimpas.omnitel.net...
> Sveiki,
>
> Kas galetu konvertuoti VBA koda (tokia nedidele 'user function' (50
> eiluciu)) i SQL Serveriui (2008 R2) suprantama kalba (gal T-SQL, ar koki
> biesa - cia as ABS. zalias)?
> atlygis alumi vln
>
> Pagarba.
>