Hej! Hej! Bifogar ett exempel på hur du kan uppdatera en post i ASPUppdatera Access via formulär
Jag har en asp-sida som listar alla poster ur en access (hyperlänkar).
När jag klickar på en post öppnar jag ett formulär där all data från den aktuella posten plockas upp.
Så långt OK.
enna formulärsida är tänkt att användas för att redigera befintliga poster i DB'n, men det är här det tar stopp. Hur fanken gör man?
Trodde enfaldigt nog att jag kunde återanvända en "lägg-till" sida jag byggt för att lägga till helt nya poster i databasen ("post"), men det funkar ju såklart inte eftersom alla poster är unika.
Finns det något smart "update-script", eller?
Hjälp! :)Sv: Uppdatera Access via formulär
Titta bland kurser & artiklar, finns en del både på ASP och SQL sidan att titta på,
det du letar efter är UPDATE som man kan använd för att uppdatera en databas.
Fungerar efter samma princip som INSERT, med den skillnaden att du måste tala om vilket ID som ska uppdateras.
//Anna-KarinSv: Uppdatera Access via formulär
<code>
<%@ Language=VBScript %>
<% Option Explicit
Dim objConn, objRs, nyckel, namn, adress, telefon, sqlStrang %>
<!-- #INCLUDE FILE = "access_conn_sql.asp" -->
<!-- #INCLUDE FILE = "ADOVBS.INC" -->
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>Uppdatera post</TITLE>
</HEAD>
<BODY>
<%
objRs.Open "person", objConn, adOpenDynamic, adLockOptimistic, adCmdTable
' om användaren inte valt en post i listrutan och hiddenfältet Dold är tomt
If Request.Form("Uppdatera")="" And Request.Form("Dold")="" Then%>
<FORM Action=uppdatera.asp Method="Post" Name="andra">
<h2>Uppdatera en post</h2>
<i>Markera post som skall uppdateras och tryck på Uppdatera-knappen</i><Br>
<%' listar samtliga poster i en listruta, använder ID för att referera till den aktuella posten%>
<SELECT Name=Uppdatera Size=1>
<%Do Until objRs.EOF%>
<OPTION Value=<%=objRs("Id")%>><%=objRs("Namn")%></OPTION>
<% ObjRs.MoveNext
Loop%>
</SELECT>
<P><INPUT Type="Submit" Value="Uppdatera" Name="Submit"></P>
<INPUT Type="Reset" Value="Återställ formuläret" Name="Reset">
</FORM>
<%objRs.Close
' om användaren valt en post i listrutan eller hiddenfältet Dold är fyllt
Else
' är hiddenfältet Dold tomt?
If Request.Form("Dold")="" Then
nyckel=Request.Form("Uppdatera")
' hitta Id:t i databasen som innehåller id:t(value)
' för namnet du valde i listrutan
objRs.Find "Id = " & nyckel%>
<FORM Action="uppdatera.asp" method="post" name="andraForm">
<P><INPUT Type="text" width="50" Name="Id" Value="<%=objRs("Id")%>"></P>
<P><INPUT Type="text" width="50" Name="Namn" Value="<%=objRs("Namn")%>"></P>
<P><INPUT Type="text" width="50" Name="Adress" Value="<%=objRs("Adress")%>"></P>
<P><INPUT Type="text" width="50" Name="Telefon" Value="<%=objRs("Telenr")%>"></P>
<P><INPUT Type="hidden" width="50" Name="Dold" Value="fylld"></P>
<P><INPUT Type="Submit" Value="Uppdatera" Name="Submit"></P>
<INPUT Type="Reset" Value="Återställ formuläret" Name="Reset">
</FORM>
<%objRs.Close
Else
nyckel = Request.Form("Id")
namn = Request.Form("Namn")
adress =Request.Form("Adress")
telefon = Request.Form("Telefon")
objRs.Find "Id = " & nyckel
objRs("Namn")=namn
objRs("Adress")=adress
objRs("Telenr")=telefon
If nyckel <> "" Then
' uppdatera posten där Id:t i databasen innehåller id:t(value) för namnet
' du valde i listrutan
sqlStrang = "UPDATE person SET Namn='" & namn & "', Adress='" & adress & "',Telenr='" & telefon & "' where Id= " & nyckel & ""
Set objRs = objConn.Execute(sqlStrang)%>
<H2>Resultat</H2>
<%Response.Write "Följande post har uppdaterats: "%><BR><Br>
<%Response.Write namn %><Br>
<%Response.Write adress%><BR>
<%Response.Write telefon
Set objRs=Nothing
objConn.Close
Set objConn=Nothing
End If
End If
End If %>
</BODY>
</HTML>
</code>