Hej!
Jag skulle vilja skapa en fråga som tar bort oönskade tecken (allt som inte är siffror) från ett fält.
Ex:
"12 34 56-7890" och "123456-7891" skall presenteras som "1234567890" och "1234567891".
Skulle bli jätteglad om någon kunde ge mig ett snabbt svar.
@ndersMedlem sedan juni 200032 969 inlägg Om du vet precis vilka tecken du vill ta bort så hade jag försökt mig på ett par vanliga UPDATE-frågor. Jag har för mig att man kan använda Replace() i SQL för Access. Ex:
UPDATE tabell SET fält = REPLACE(fält, ' ', '')
Engine^Medlem sedan dec. 20003 887 inlägg Enklast är nog om du gör en modul och lägger till följande funktion, som med hjälp av regular expression ordnar det.
Funktionen
Function ExtractNumbers(strSource) As String
Dim objRX As New RegExp
objRX.Global = True
objRX.IgnoreCase = True
objRX.Pattern = [^\d]
ExtractNumbers = objRX.Replace(strSource, "")
End Function
Sedan ska det bara vara att skapa en fråga, exempelvis
UPDATE [i]tabell[/i] SET [i]kolumn[/i] = ExtractNumbers([i]kolumn[/i])
Men det är alltid en bra ide att testa en sådan fråga innan man kör den på lite skräpdata, så att man inte står där utan att kunna ångra sig efter man kört frågan.
För att funktionen ska kunna göras behövs förresten en referens till Microsoft VBScript Regular Expressions 5.5 under verktyg i VBA-editorn.
Det det skulle jag kunna klara av om det gällde webbsidor men hur gör jag det i Access?
Dessutom vill jag inte ändra i tabellen utan i frågeresultatet alternativ i en ny tabell.
Engine^ skrev:
Enklast är nog om du gör en modul och lägger till följande funktion, som med hjälp av regular expression ordnar det.
Funktionen
Function ExtractNumbers(strSource) As String
Dim objRX As New RegExp
objRX.Global = True
objRX.IgnoreCase = True
objRX.Pattern = [^\d]
ExtractNumbers = objRX.Replace(strSource, "")
End Function
Sedan ska det bara vara att skapa en fråga, exempelvis
UPDATE [i]tabell[/i] SET [i]kolumn[/i] = ExtractNumbers([i]kolumn[/i])
Men det är alltid en bra ide att testa en sådan fråga innan man kör den på lite skräpdata, så att man inte står där utan att kunna ångra sig efter man kört frågan.
För att funktionen ska kunna göras behövs förresten en referens till Microsoft VBScript Regular Expressions 5.5 under verktyg i VBA-editorn.
Engine^Medlem sedan dec. 20003 887 inlägg Jag tänkte att du skulle göra det i Access... du kan ju alltid använda en selectsats för att se resultatet utan att ändra något.
SELECT ExtractNumbers([i]kolumnen[/i]) FROM [i]tabellen[/i]
Har jag missuppfattat något här?
Nej du har nog inte missuppfattat något utan det är nog mer min okunskap.
Testade nedanstående men får meddelandet:
Odefinierad funktion 'ExtractNumbers' i uttryck.
Finns det en lösning?
Tackar för din kunskap.
Engine^ skrev:
Jag tänkte att du skulle göra det i Access... du kan ju alltid använda en selectsats för att se resultatet utan att ändra något.
SELECT ExtractNumbers([i]kolumnen[/i]) FROM [i]tabellen[/i]
Har jag missuppfattat något här?
Engine^Medlem sedan dec. 20003 887 inlägg En lösning är den jag skrev - dock med en liten förändring i koden. Jag glömde citationstecken runt [^\d], så det är bara att lägga till det.
Tyvärr har jag inte Access här att testa på, men min erfarenhet säger mig att det ska inte vara några problem.
Har du skapat en ny modul och lagt in funktionen där?