25. august 2002 - 21:59Der er
14 kommentarer og 1 løsning
Update i mange tabel
Jeg har en søgeside, hvor indholdet af en kasse findes og indsættes i en formular i tekstfelter. Her vil jeg gerne kunne rette i felterne og opdatere alt indold i kassen på en gang.
Hvordan gør man det?
Det nærmeste jeg er kommet efter utallige forsøg er:
fejlmeddelelse: Antallet af argumenter er forkert eller egenskabstildelingen er ugyldig: 'CommandText'
dim objCMD Set objCMD = server.createobject("ADODB.Command") with objCMD .ActiveConnection = strConnect .Commandtype = adCmdText .CommandText strSQL .execute end with set objCMD = Nothing end sub
og fejlmeddelse: Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler et komma. i forespørgselsudtrykket "IndholdID=1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107,". /emnekasse/redigerindholdMform.asp, line 168
på dette forsøg: sub RetIndhold
dim strSQL, objRS, Connect
Set Connect = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.Recordset")
objRS("Antal")=Request("Antal") objRS("Materiale")=Request("Materiale") objRS("Materialetype")=Request("Materialetype") if Request("Pris")<>"" then objRS("Pris")=Request("Pris") end if objRS.Update
Connect.close Set connect = Nothing objRS.close Set ofjRS = Nothing end sub
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Fandt en fejl - tegnet = var "faldet" ud i .CommandText strSQL Nu får jeg så en: Microsoft JET Database Engine (0x80040E07) Datatyperne stemmer ikke overens i kriterieudtrykket. når jeg når til .execute Er det den "sædvanlige" at Materiale og Materialetype er tekst og Antal og IndholdID er tal?
Ok.. du kan ikke opdater flere recordset med forskellige data på engang. Man kan updater mange recordset på en gang med det skal være det samme man putter i eks:
UPDATE tabel SET kolnavn = 'Ny linie' WHERE ID IN (10,34,567)
Hvis du vil opdater flere så må du lave et loop som tager en SQL af gangen..
Ok - det vil jeg så gå i gang med at finde ud af. Hvis det ikke kan lade sig gøre er det vel også derfor, at jeg ikke har kunne finde eksempler på det nogen steder. Du har nu alligevel hjulpet mig et stykke på vej - så endnu en gang Tak for hjælpen
Eks kunne være hivs du har en form med flere "producter" som skal rettes så kan du brugen den for du har men give input felterne med navnet som idag + IndholdsID..: <input type="text" name="Materialetype<%=rs("IndholdID")%>>
Det enste felt som skal være som idag IndeholdID så du beholder din liste med IDs som skal opdateres ...
Så kan opdatering koden ligen dette:
'Hendt lise med ID: IDer = request.form("indholdID") 'Lav det om til et array med ID'er IDlist = Split(IDer,",") 'lav loop som opdater for i = lbound(IDlist) to Ubound(listID) id = trim(IDlist(i))
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.