0 голосов
спросил от в категории Access
Это должно происходить независимо от порядка полей в инструкции SELECT . Зачем? Ваша функция написана ненадлежащим образом.

Посмотрите пример:
Option Explicit Sub Test() MsgBox RetNewString("AMADEUS") & vbCr & vbCr & RetNewString2("AMADEUS") End Sub Function RetNewString(inp As String) As String Dim i As Integer For i = 1 To Len(inp)     If Mid(inp, i, 1) = "A" Then         RetNewString = Replace(inp, Mid(inp, i, 1), "B")     ElseIf Mid(inp, i, 1) = "D" Then         RetNewString = Replace(inp, Mid(inp, i, 1), "E")     End if Next End Function 'this one should returns proper result, but it's not optimized! Function RetNewString2(ByVal inp As String) As String Dim i As Integer, sRetVal As String sRetVal = inp For i = 1 To Len(sRetVal)     If Mid(sRetVal, i, 1) = "A" Then         sRetVal = Replace(sRetVal, Mid(sRetVal, i, 1), "B")     ElseIf Mid(sRetVal, i, 1) = "D" Then         sRetVal = Replace(sRetVal, Mid(sRetVal, i, 1), "E")     End if Next RetNewString2 = sRetVal End Function


Вы видите разницу?

Я бы посоветовал вам забыть о цикле для . Зачем? Простое Replace должно быть достаточно, потому что функция Replace меняет каждую видимость искомой строки. См.
Option Explicit Sub Test() MsgBox RetNewString("AMADEUS") & vbCr & vbCr & RetNewString2("AMADEUS") End Sub Function RetNewString(inp As String) As String Dim i As Integer For i = 1 To Len(inp)     If Mid(inp, i, 1) = "A" Then         RetNewString = Replace(inp, Mid(inp, i, 1), "B")     ElseIf Mid(inp, i, 1) = "D" Then         RetNewString = Replace(inp, Mid(inp, i, 1), "E")     End if Next End Function 'this one should returns proper result, but it's not optimized! Function RetNewString2(ByVal inp As String) As String Dim i As Integer, sRetVal As String sRetVal = inp For i = 1 To Len(sRetVal)     If Mid(sRetVal, i, 1) = "A" Then         sRetVal = Replace(sRetVal, Mid(sRetVal, i, 1), "B")     ElseIf Mid(sRetVal, i, 1) = "D" Then         sRetVal = Replace(sRetVal, Mid(sRetVal, i, 1), "E")     End if Next RetNewString2 = sRetVal End Function
# [
Function ATM(ByVal inp As String) As String inp = Replace(inp, "SearchedChar1", "ReplaceWithChar1") inp = Replace(inp, "SearchedChar2", "ReplaceWithChar2") 'and so on... ATM = inp End Function
#].

Function ATM(ByVal inp As String) As String inp = Replace(inp, "SearchedChar1", "ReplaceWithChar1") inp = Replace(inp, "SearchedChar2", "ReplaceWithChar2") 'and so on... ATM = inp End Function

Пожалуйста, войдите или зарегистрируйтесь чтобы ответить на этот вопрос.

Категории

Добро пожаловать на сайт DraftingCode Q&A, где вы можете задавать вопросы и получать ответы от других членов сообщества.

Похожие вопросы

0 голосов
0 ответов
спросил 10 Сен, 18 от richard maccutchan в категории Access
0 голосов
0 ответов
спросил 26 Апр, 10 от eddy vluggen в категории Access
0 голосов
0 ответов
спросил 01 Янв, 70 от MacFirst (120 баллов) в категории Access
0 голосов
0 ответов
0 голосов
0 ответов
спросил 10 Янв, 18 от maciej los в категории Access
...