webForumDet fria alternativet

Utbytningsfunktion..

ASP

22 svar · 459 visningar · startad av alj

Medlem sedan sep. 2002538 inlägg
Frågan#1

Nu när det är helg och jag inte har något att göra, Så tänkte jag att ge mig på en ny funktion till ett administartions-script jag håller på att utveckla.

Jag har en databas i access, där jag har en tabell vid namn tblData som innehåller - en massa data kort och gott..

I tblData finns det en kolumn som heter "Innehall"..
Jag skulle villja kunna byta ut en sträng t.ex. "Hejsan hur mår du.." emot "Jag mår bra" i alla "Innehalls-kolumner" i tblData..

Hur ska jag få detta att fungera?
Har inte den endast aningen förutom om man kanske kunde använda den där suveräna Replace funktionen som någon visade mig här på wF.

Någon som har ett sådant script som dom kan visa mig, eller någon som har en idé hur man skall göra?
Tack på förhand, Adam :)

Medlem sedan feb. 200112 078 inlägg
#2
strVal = "Du skall icke hava någon annan Gud vid din sida, förutom Kjell."

strVal = replace(strVal, "Kjell", "OveRRidE")

Så ersätts alla förekomster av Kjell i texten och byts ut mot OveRRidE.

PS. Psst! http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vbscripttoc.asp ;) DS.

Medlem sedan sep. 2002538 inlägg
#3

OveRRidE skrev:

strVal = "Du skall icke hava någon annan Gud vid din sida, förutom Kjell."

strVal = replace(strVal, "Kjell", "OveRRidE")

Så ersätts alla förekomster av Kjell i texten och byts ut mot OveRRidE.

PS. Psst! http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vbscripttoc.asp ;) DS.

Ah, perfekt..
återkommer förhoppningsvis snart, med ett resultat :)

Medlem sedan sep. 2002538 inlägg
#4

Nu har jag riktigt hjärnsläpp..

SQLData = "SELECT * FROM tblData"
    Set RecSetData = Connect.Execute(SQLData)

            strVal = RecSetData("Innehall")
            strVal = replace(strVal, "Grunder", "Grunder_är_fullständigt_fett")
SQLReplace = "UPDATE tblData SET Innehall = '" & strVal & "' "
Connect.Execute(SQLReplace)
RecSetData.MoveNext

Byter visserligen ut "Grunder" till "Grunder_är_fullständigt_fett" men den kopierar sedan sidan grunder till alla sidor i hela kolumnen "Innehall"

Hur ska jag göra så att den söker igenom sidorna och byter bara ut det den ska och inget mera satt säga, jag kan säkert det här men jag orkar inte tänka för tillfället.
- Så då får ni göra det åt mig :D

Medlem sedan feb. 200112 078 inlägg
#5

Det är för att du har glömt ett WHERE-statement i din SQL-fråga. Du måste ange på vilka poster datan skall uppdateras, annars kör den igenom hela tabellen, och gör som i ditt fall, alla rader i den kolumnen till ditt värde.

SQLReplace = "UPDATE tblData SET Innehall = '" & strVal & "' WHERE id = " & nånVariabel & " "

nånVariabel måste bytas ut mot en lämplig identifierare som härstammar från dit ovanstående recordset.

Medlem sedan sep. 2002538 inlägg
#6

Okej.. men det är ju så att den skall upptadera alla poster som innehåller "Grunder" hur skall jag göra då?!
Kan man typ skriva WHERE innehall "Innehåller grunder" eller något sådant i SQL satsen?

Medlem sedan apr. 20021 203 inlägg
#7

Använd LIKE is å fall. Jag kan inte syntaxen i huvudet men kolla i referensen på https://www.devguru.com .

:)

Medlem sedan feb. 200112 078 inlägg
#8
SQLReplace = "UPDATE tblData SET Innehall = '" & strVal & "' WHERE innehall LIKE '%" & nånVariabel & "%' "

Men det blir ändå inte korrekt kom jag på, för ersättningen måste göras samtidigt. Hrm. :l

Medlem sedan apr. 20021 203 inlägg
#9

Använd flera SQL-satser.
Först har du en som hämtar ut allting i tabellen och sedan lägger du in det i en array. Denna loopar du sedan igenom samtidigt som du kör din replace. Sedan får du lägga in allting i databasen igen... färdigt!

:)

Medlem sedan sep. 2002538 inlägg
#10

OveRRidE skrev:

SQLReplace = "UPDATE tblData SET Innehall = '" & strVal & "' WHERE innehall LIKE '%" & nånVariabel & "%' "

Men det blir ändå inte korrekt kom jag på, för ersättningen måste göras samtidigt. Hrm. :l

Nu förstår jag inte riktigt hur du menar?!

Och trexter.com tack för det, men jag får det inte riktigt att fungera..Men tusen tack alla som hjälper mig.

Medlem sedan sep. 2002538 inlägg
#11

Ingen som kan hjälpa mig?

Medlem sedan feb. 20022 594 inlägg
#12
SQLReplace = "UPDATE tblData SET Innehall = '" & Replace(tblData.Innehall, "hej", "tjo") & "' WHERE innehall LIKE '%" & nånVariabel & "%' "

Otestat. Skulle gissa på att det inte funkar :/

Förklara gärna , lite kort, vad som ska göras för alla så slipper de läsa igenom hela tråden. Alltså, istället för att skriva "Ingen som kan hjälpa mig?" kan du skriva själva frågan.

Medlem sedan sep. 2002538 inlägg
#13

Ekström skrev:

SQLReplace = "UPDATE tblData SET Innehall = '" & Replace(tblData.Innehall, "hej", "tjo") & "' WHERE innehall LIKE '%" & nånVariabel & "%' "

Otestat. Skulle gissa på att det inte funkar :/

Förklara gärna , lite kort, vad som ska göras för alla så slipper de läsa igenom hela tråden. Alltså, istället för att skriva "Ingen som kan hjälpa mig?" kan du skriva själva frågan.

Okej, förlåt.. jag bara börjar bli lite småtrött ..
iaf. den där raden gav mig följande fel:

"Körningsfel i Microsoft VBScript fel '800a01a8'

Objekt krävs.: 'tblData'

/new/replace.asp, rad 21 "
rad 21 är raden du gav mig..
Vet inte hur det där punkterna fungerar (tblData.Innehall) men ska det inte typ vara RecSetData istället för tblData eller är jag ute och cyklar totalt nu?

Och för er som inte vet vad tråden handlar om vill jag ha en funktion som söker igenom en kolumn efter en sträng och om den hittar den strängen ska den byta ut strängen emot en annan sträng :)

Medlem sedan feb. 200112 078 inlägg
#14

Ekströms förslag fungerar inte alls, eftersom tblData.Innehall är ett kolumnnamn som återfinns i SQLsträngen, inte i VBScript, som scriptet tror nu. Just nu undrar din sida varför objektet/klassen tblData inte finns och speciellt varför inte metoden .Innehall fungerar. :)

Medlem sedan feb. 200112 078 inlägg
#15

Finns det inte en replace()-funktion i SQL då?

Medlem sedan maj 200010 687 inlägg
#16

Jo. :)

Medlem sedan dec. 200012 464 inlägg
#17

Nej, inte i ANSI SQL. Det finns i en del DBMS men inte alla, t.ex. så har access inte någon sådan funktionalitet.

Medlem sedan maj 200010 687 inlägg
#18

Vad segt...

Medlem sedan sep. 2002538 inlägg
#19

Så det går inte att göra ett sådant script?!

Medlem sedan jan. 20022 440 inlägg
#20

Du har ett problem bara... om du ersätter Grunder, måste du ersätta BARA Grunder.... annars kommer du få poster så småningom som ser ut såhär.

Grunder_är_fullständigt_fett_är_fullständigt_fett_är_fullständigt_fett

Och det är ju inget vidare...

Bästa kanske vore att ta reda på vad som skulle kunna tänkas behöva ändras. Typ kategorier m.m och ändra detta med någon <select> istället?

Eller kanske till och med göra en tabell som är relaterad med bara kategorier... kanske inte förstår din fråga riktigt... bara flummade lite i mina egna tankar ;)

282 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
154 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)