Una opción sería utilizar la calculadora de campo. Sí que pasa por cada línea, pero no sé si entiendo cómo lo harías sin iterar por la tabla de alguna manera. No soy bueno en VB script, pero puedes usar el Dividir para separar basándose en el primer espacio de la cadena (suponiendo que todos los nombres siguen esa estructura), y debería ser algo así:
EDIT: Disculpas al cartel inicial, en realidad lo entendí todo mal. Aquí está mi mejor intento de un VB script que pondrá la última palabra en una cadena delimitada por espacios al principio con una coma y luego añadir el resto, pero estoy recibiendo un error de sintaxis. Si puedes encontrarlo, por favor edita esto para que sea correcto. Hasta entonces, seguiré dándole vueltas al asunto.
Function switchpos(ByVal theString As String) As String
Dim theArray() As String
Dim theFinal as String
theArray() = Split(theString, " ", -1)
For i = LBound(theArray) To UBound(theArray)-1
theFinal = theFinal & theArray(i)
Next
switchpos = theArray(UBound(theArray)) & ", " & theFinal
Return switchpos
End Function
Todavía estoy trabajando en un buen método para conseguir sumar el resto de las cadenas variables. Si quieres un método rápido en python, introduce lo siguiente en tu Codeblock:
def nameswitch(theString):
names = theString.Split()
b = ""
for name in names:
if(name == names[-1]):
continue
b = b+name+" "
return names[-1]+", "+b
Y pon esto en el bloque de ejecución:
namswitch([FIELD])
El código anterior tomó el valor de la Tabla STOCK LN FREEDOM
y devuelto FREEDOM, STOCK LN
.
¿Es eso lo que buscas?