Tyvärr känner jag inte till om det finns något inom SQL som gör att man kan göra det du beskriver. Det finns nog troligtvis inte.
Du får hämta post för post och ändra det. Huruvida du delar upp namnen beror på hur du vill göra det. Du kan använda Split() eller någon kombination med InStr() med Left() eller Right().
Lägg till en kolumn "fornamn" och en "efternamn" och som princip:
sql="Select namn,id from tabell"
'öppna databas och loopa ut
Do while not RS.EOF
str = RS("namn")
id = RS("id")
mySplit = split(str," ")
Response.Write "Uppdaterar: "& str &"<br>"
Conn.execute("UPDATE tabell set fornamn='"& mySplit(0) &"',efternamn='"& mySplit(1) &"') where id = " & id),,128
RS.movenext
loop
'Stäng databas
RS.Close
Du kan kanske lägga till on error resume next om det är så att något namn skulle saknas i tabellen.
Jo jag har prövat båda faktiskt, och jag bytte ut "tabell" mot det riktiga namnet, samma sak, sidan körs igenom och det ser ok ut, öppnar tabellen i access och inget har ändrats, mysko mysko...
Det jag tänkte med min SQL-sats var att den kan du köra direkt i Access
Jo som en fråga, men det låter mig inte spar koden, klistrade bara in den såhär:
UPDATE Avance SET fornamn = Left(namn, InStr(namn, ' '), efternamn = Mid(namn, InStr(namn, ' ') + 1)
Men det säger "missing ),], or Item in query expression" osv.
edit:
Detta säger det när jag gjorde det som en funktion:
"Missing ), ], or Item in query expression 'Left(namn, InStr(namn, ' '), efternamn = Mid(namn, InStr(namn, ' ') + 1)'. "