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 :)
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)
%>
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).