strSQL = "Update tabell Set fält = 'värde'"
Då kommer alla värden i "fält" att få värdet "värde"...
Eller måste du specifikt ha det via ett RS?
14 svar · 302 visningar · startad av qwerty
När man har uppdaterat kanske 10 olika textfält. Finns det då något sätt att uppdatera hela RS eller måste man göra en UPDATE för varje fält som ska uppdateras med nya värden.
strSQL = "Update tabell Set fält = 'värde'"
Då kommer alla värden i "fält" att få värdet "värde"...
Eller måste du specifikt ha det via ett RS?
Nä, det är så här:
Jag har ett formulär där man i ca 10 olika textfält matar in data som sparas i databasen. På min adminsida har jag ett lika dant formulär där jag öppnar respektive databasfält i rätt textfält. Här kan man sedan redigera texten och sedan trycka på uppdatera. Då undrar jag om jag måste uppdatera varje fält eller om man kan uppdatera alla fälten med bara en Sql-rad, eller om man måste ha en för varje fält?
Alltså precis som jag sa ovan...
Du anger ju vilka fält som skall uppdateras med din Where-sats, och har du en gemensam nämnare för alla dina tio fält så är det bara att sätta det som Where-krav.
Kalla mig gärna idiot men...
strSQL = "Update tabell1 Set fält = 'värde'" WHERE ID ="& id
Vad ska jag skriva där det står värde, och hur i hela världen ska databasen förstå att den ska uppdatera både namn, adress, telefonnummer, mm enligt de ändringar som är gjorda i formuläret.
Kommer inte alla fält att få samma värde med ditt exempel, istället för att uppdateras med värdena från formuläret eller...?
Så här gör jag nu: (i förkortad version)
id = request.form("id")
namn = request.form("namn")
telnr = request.form("telnr")
SQL = "UPDATE Tabell1 SET [namn] ='"& namn &"' WHERE ID ="& id
SQL2 = "UPDATE Tabell1 SET [telnr] ='"& telnr &"' WHERE ID ="& id
con.execute(SQL)
con.execute(SQL2)
osv, osv
... det måste finnas nåt enklare sätt.
och som sagt. Kalla mig gärna idiot, men jag fattar inte ditt exempel.
strSQL = "UPDATE Tabell1 SET [namn] ='"& namn &"', [telnr] = '" & telnr & "', [adress] = '" & adress & "' WHERE ID ="& id
osv...
SQL = "UPDATE Tabell1 SET " & _
"[namn] ='"& namn &"', " & _
"[telnr] = '" & telnr & "' WHERE ID ="& id
con.Execute(SQL)
cya,
PatrikB
Tack, tack båda två...alla 3.
ledsen att säga det men...
får det inte att funka
SQL = "UPDATE Tabell1 SET " &_
"[namn] ='"& namn &"'," &_
"[telnr] ='"& telnr &"'," &_
"[adress] ='"& adress &"'," &_
"[postnr] ='"& postnr &"'," &_
"[ort] ='"& ort &"'," &_
"[kvot] ='"& kvot &"'," &_
"[betyg] ='"& betyg &"'," &_
"[ggr] ='"& ggr &"'," &_
"[kval] ='"& kval &"'," &_
"[uppgifter] ='"& uppgifter &"'," &_
"[ovrigt] ='"& ovrigt &"'," &_
"[test] ='"& test &"'," &_
"[datum] ='"& datum &"'," &_
"[senast] ='"& senast &"'," &_
"[kon] ='"& kon &"'," &_
"[datum] ='"& datum &"'," &_
"[fraga1] ='"& fraga1 &"'," &_
"[fraga2] ='"& fraga2 &"'," &_
"[fraga3] ='"& fraga3 &"' WHERE ID ="& id
Con.Execute(SQL)
Får följande mess:
Data type mismatch in criteria expression.
...och felet är naturligtvis på execute-raden.
då är det något fält av typen tal som har apostrofer runt värdet i din fråga.
text/pm:apostrofer runt värdet
tal:inte.
om det är ett datum, hur skriver man då?
testade så här
"[datum] =#"& datum &"#," &_
...men det var tydligen fel
Syntax error in date in query expression '##'.
...men det beror på att datum är tomt!
skriv ut sql-frågan med response.write så ser du hur den färdiga frågan ser ut, och då ser du om det är saker som saknas!
precis...
hade glömt att skicka med datumet dolt från formuläret.
nu funkar det!
Tack alla som hjälpt mig