webForumDet fria alternativet

Redigera databas

6 svar · 371 visningar · startad av webbmannen

webbmannenMedlem sedan dec. 1999826 inlägg
#1

Jag håller på att skapa en webbaserad lösning för att redigera en databas med över hundra företag i. Att fixa så det gick att lägga till nya företag gick smärtfritt, men hur gör man när man vill ändra på befintliga?

Har gjort en början...

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\pellx\pellx.mdb"
SQL = "SELECT (Foretag) AS ftg FROM retailer"
rs.Open SQL, Connect
%>
<form action="byta.asp" method="post">
<table border="0" width="600">
<tr><td width="200"><font face="verdana,arial" size="2">Välj företag att redigera:</font></td>
<td width="300">
<Select name="Företag">
<%
Do While Not rs.EOF
%>
<option> <%=rs("ftg")%>
<%
rs.MoveNext
Loop
%>
</select>
</td><td width="100"><input type="submit" value="Plocka fram"></td></tr>
</table>
</form>

...men vet inte hur jag ska gå vidare. Alla tips och förslag är uppskattade :)

/webb

AGMedlem sedan mars 20001 266 inlägg
#2

Det första du måste gör är att skicka med ett värde, det gör du lättast med ett id men i ditt fall använder vi oss av företagsnamnet

<option value="<%=rs("ftg")%>" name="ftg"> <%=rs("ftg")%>

'Sen på sidan byta.asp kan du exempelvis använda dig av följande kod:

<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("\cgi-bin/databas.mdb")
SQL = "SELECT * FROM tabell where foretag =" & Request("ftg")
Set rs = Connection.Execute(SQL)
%>
' På den sidan får du sen lista ett formulär med de fält som skall ändras med value="" som dina kolumn namn och sätt name till typ name="fnamn" Sen får du skicka med id med ett hidden fält.
Från denna sida skickas de sen exemplevis till insert.asp som kan se ut såhär:

<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("\cgi-bin/databas.mdb")
SQLStmt = "UPDATE tabell SET " 
SQLstmt = SQLstmt & "namn = '" & Request.Form("fnamn") & "', "
SQLstmt = SQLstmt & "tele = '" & Request.Form("ftele") & "', "
SQLstmt = SQLstmt & "Email = '" & Request.Form("femail") & "', "
SQLStmt = SQLStmt & " where foretag =" & Request("ftg")
Connection.Execute(SQLstmt)
%>

Hoppas detta hjälper

Andreas

webbmannenMedlem sedan dec. 1999826 inlägg
#3

Hej AG,

Tack för hjälpen :) Jag ska försöka ordna till det med hjälp av din kod imorgon.

Det tycks dock som om jag får problem med raden:

SQL = "SELECT * FROM tabell where foretag =" & Request("ftg")

Min PWS ger felmeddelandet odefinerat fel eller ibland att operator saknas för foretag ="

Kommer väl en ny dag imorgon också hoppas jag :)

/webb

VideMedlem sedan dec. 19998 577 inlägg
#4

Antar att foretag är ett text-fält... då skall du ha enkelfnuttar runt värdet:

SQL = "SELECT * FROM tabell where foretag ='" & Request("ftg") & "'"

------------------
Kom hem till mig...

webbmannenMedlem sedan dec. 1999826 inlägg
#5

Fnuttar, fnuttar och fnuttar...

Tack Vide :)

/webb

webbmannenMedlem sedan dec. 1999826 inlägg
#6

Tusan också vad det krånglar :l

Kör en kod som ser ut så här:

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\pellx\pellx.mdb"
SQL = "SELECT * FROM retailer WHERE Foretag ='" & Request("ftg") & "'"
Set rs = Connect.Execute(SQL)
%>
<form action="insert.asp" method="post">
<table width="500" border="1">
<tr><td>Landskap</td><td><input type="text" value=""></td></tr>
<tr><td>Företag</td><td><input type="text" value=""></td></tr>
<tr><td>Postadress</td><td><input type="text" value="<%=rs("Postadress")%>"></td></tr>
<tr><td>Postnummer</td><td><input type="text" value=""></td></tr>
<tr><td>Ort</td><td><input type="text" value=""></td></tr>
<tr><td>Telefon</td><td><input type="text" value=""></td></tr>
<tr><td>E-post</td><td><input type="text" value=""></td></tr>
<tr><td>Hemsida</td><td><input type="text" value=""></td></tr>
</table>
</form>

Men får felmeddelande:

ADODB.Field fel '80020009' 

Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.

Inget av felmeddelandet är riktigt.

Jag är medveten om att formuläret är ofärdigt, men ville först få hämtningen att funka. Inte är det väl "fnutt-fel" nu va :q (har testat alla möjliga varianter).

/webb

AGMedlem sedan mars 20001 266 inlägg
#7

Torde bero på att du inte skickar med nåt värde. typ nåt sånt här måste du göra
insert.asp?ftg=nilsarnebygg

Alltså du skickar inte med nåt värde till sidan och aktuell sida kräver ju att du hämtar från en spsciell post, fattar du?

Glöm sen inte att skicka med samma värde via ett hidden fält till sidan efter det.

Lycka till.
Andreas

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)