webForumDet fria alternativet

Update?

ASPur ASP

26 svar · 739 visningar · startad av tomas21 · sida 2 av 2

Frågan, av tomas21

Hej igen! Nu e jag i farten igen :) Mitt problem nu är att jag har ett formulär som jag fyller i och sen skickar iväg för att lägga in nya saker i databasen. Vanligvis när man uppdaterar sidor har man tex. rs.addnew request.form("name") = rs("name) osv osv.... rs.update Men mina sidor bygger formulären automatiskt efter hur tabellen ser ut vilket innebär att jag inte kan använda mig av koden

Läs frågan i sin helhet →
Medlem sedan mars 20015 287 inlägg
#21

Om du använder det översta kodexemplet av de du visar så ska formulärfältsnamnen vara samma som kolumnnamnen i databasen.

Hm... undrar dock om inte tex submitknappen kommer med i din loop, testa och om det är så, kompensera för det. Typ med en ifsats.

Medlem sedan apr. 200339 inlägg
#22

när jag skriver koden:

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db1.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")

Addera = "Select * From " & Request.QueryString("tabell")
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.addnew
for each fld in request.form
RecSet(fld) = request.form(fld)
next
RecSet.update
Set RecSet = Nothing : Set RecSet = Nothing
%>

får jag error på:

ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.

rad som kompilatorn klagar på rad 203 där finns:

RecSet(fld) = request.form(fld)

Medlem sedan juni 200032 969 inlägg
#23

Då finns det inget fält i tabellen som heter likadant som fältet som kommer från formuläret.

Medlem sedan mars 20015 287 inlägg
#24

Testa att kör bara:

for each fld in request.form 
response.write fld & " : " & request.form(fld) 
next

Samt utkommentera den kod som lägger in i db, på så sätt får du reda på vad alla fält heter som postas. (Undrar fortfarnade över submitten...)

Medlem sedan apr. 200339 inlägg
#25

du hade rätt jag fick med submit knapp så jag körde en if sats

RecSet.addnew
for each fld in request.form
if fld ="Submit" then
else

RecSet(fld) = request.form(fld)

RecSet.update
end if
next

fick fel ändå

Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

på raden där felet uppstår

RecSet(fld) = request.form(fld)

måste vara något fel på if satsen

Medlem sedan apr. 200339 inlägg
#26

någon sam har förslag på hur jag får bort Submiten,

seek tips

Medlem sedan mars 20015 287 inlägg
#27
RecSet.addnew 
for each fld in request.form

	if NOT fld ="Submit" then 
		RecSet(fld) = request.form(fld) 
	end if

next 
RecSet.update
138 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)