Jeg skal ger ha' det sådan at jeg ved hjælp af en form kan indtaste følgende:
usg type status
Er der nogen der kan hjælpe ?
Herunder er koden til søgning: <% ' Henter værdien fra soeg.htm strKeyword = Trim(Request.Form("Keyword"))
If Len(strKeyword) = 0 Then ' Hvis der ikke er skrevet i feltet Response.Clear Response.Redirect("search.htm") Else ' Hvis der er skrevet i feltet strKeyword = Replace(strKeyword,"'","''") End If
' Opbygger en dynamisk SQL streng strSQL = "SELECT ID, usg, type, status FROM personer WHERE" strSQL = strSQL & " (usg LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (type LIKE '%" & strKeyword & "%')" strSQL = strSQL & " OR (status LIKE '%" & strKeyword & "%')"
' Skaber DSNLess forbindelse til DBen strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN
' Skaber et recordset udfra SQL strengen Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis der er fundet poster på søgningen Response.Write "<p><strong>Resultat af søgning.</p></strong>" Response.Write "<table border=1>" Response.Write "<tr><th>USG nummer</th><th>Reparations model</th><th>Reparations status</th><th>" Do While Not rs.EOF Response.Write "<tr><td>" & rs("usg") & "</td>" Response.Write "<td>" & rs("type") & "</td>" Response.Write "<td>" & rs("status") & "</td></tr>"
rs.MoveNext Loop Response.Write "</table>" Else ' Hvis der ikke er fundet poster på søgningen Response.Write "<p><font color=red><strong>Dette USG nummer er ikke registreret hos os, prøv igen</p>" End If
' Rydder op efter os myConn.Close Set myConn = Nothing %>
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.
Dine 2 sql-sætninger skal sættes sammen til en - og så skal usg ændres til nummer som i formen - sådan:
strSQL = "Insert into personer (usg, status) values('" & Request.Form("nummer") & "', '" & Request.Form("status") & "')"
Ellers er alt andet korrekt.
Der er 2 problemer mere som du kan rende ind i og det er: 1. Hvis bruger ikke indtaster noget i felterne. 2. Hvis typerne i databasen ikke er tekstfelter.
Din SQL-sætning er lavet som om at usg er et tekstfelt. Hvis det nu viser sig at det er et tal-felt så skal sql-sætningen ændres:
strSQL = "Insert into personer (usg, status) values(" & Request.Form("nummer") & ", '" & Request.Form("status") & "')"
samt en form som kan ændre i allerede indtastede oplysninger.
Hvis jeg feks. laver nr. 11111 og så igen laver nr. 11111 så vil den bare lave en extra post altså så jeg har 2 poster der hedder 11111, det skal den ikke jeg vil gerne have så hvis jeg indtaster et allerede eksisterende nummer så RETTER den posten.
det burde vel have været lavet i et nyt spm... men ok...
slet.asp: --- <%sql="select * from personer order by usg" set record=rs.execute(sql)%> <form action="sletning.asp"> <select name="sletter"><%do while not record.eof%> <option value="<%=record("usg")%>"><%=record("usg")&" - "&record("status")%> <%record.movenext loop%></option> </select> </form>
det ovenstående skriver du ind i en fil som hedder SLET.ASP så vil der i den fil komme en dropdown med alle dine usg'er
og så laver du en fil som hedder sletning.asp og deri skriver du
<%sql="delete * from personer where usg='"&request.form("sletter")&"'" set record=rs.execute(sql)%>
så er den skid slået
du skal selvfølgelig lige huske dine db-connections i begge filer
Her er koden: <% ' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/database.mdb") Conn.Open DSN
<%sql="select * from personer order by usg" set record=rs.execute(sql)%> <form action="sletning.asp"> <select name="sletter"><%do while not record.eof%> <option value="<%=record("usg")%>"><%=record("usg")&" - "&record("status")%> <%record.movenext loop%></option> </select> </form> ' Luk databaseforbindelse Conn.Close Set Conn = Nothing %>
Og den til sletning: <% ' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/database.mdb") Conn.Open DSN
<%sql="delete * from personer where usg='"&request.form("sletter")&"'" set record=rs.execute(sql)%> ' Luk databaseforbindelse Conn.Close Set Conn = Nothing %>
Kan du se hvad fejlen er, jeg får ingen form frem kun en fejl.
<% ' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("db/database.mdb") Conn.Open DSN
<%sql="delete * from personer where usg='"&request.form("sletter")&"'" set record=rs.execute(sql)%> ' Luk databaseforbindelse Conn.Close Set Conn = Nothing %>
du har to <% men kun en %> kunne det være derfor eller har du basre ikke kopieret den anden %> med ?
sql="select * from personer order by usg" set record=rs.execute(sql) <form action="sletning.asp"> <select name="sletter"><%do while not record.eof%> <option value="<%=record("usg")%>"><%=record("usg")&" - "&record("status")%> <%record.movenext loop%></option> </select> </form>
' Luk databaseforbindelse Conn.Close Set Conn = Nothing %> <h1>Databasen er opdateret!</h1> </body> </html>
sql="delete * from personer where usg='"&request.form("sletter")&"'" set record=rs.execute(sql)%> ' Luk databaseforbindelse Conn.Close Set Conn = Nothing %> <h1>Databasen er opdateret!</h1> </body> </html>
sql="select * from personer order by usg" set record=rs.execute(sql) <form action="sletning.asp"> <select name="sletter"><%do while not record.eof%> <option value="<%=record("usg")%>"><%=record("usg")&" - "&record("status")%> <%record.movenext loop%></option> </select> </form>
skal rettes til
sql="select * from personer order by usg" set record=rs.execute(sql)%> <form action="sletning.asp"> <select name="sletter"><%do while not record.eof%> <option value="<%=record("usg")%>"><%=record("usg")&" - "&record("status")%> <%record.movenext loop%></option> </select> </form><%
sql="delete * from personer where usg='"&request.form("sletter")&"'" set record=conn.execute(sql) ' Luk databaseforbindelse Conn.Close Set Conn = Nothing %> <h1>Databasen er opdateret!</h1> </body> </html>
sql="select * from personer order by usg" set record=conn.execute(sql)%> <form action="sletning.asp"> <select name="sletter"><%do while not record.eof%> <option value="<%=record("usg")%>"><%=record("usg")&" - "&record("status")%> <%record.movenext loop%></option>
evt. hvis det var muligt at ændre i insert.htm/insert.asp så man kunne ændre i usg, hvis jeg indtaster det samme nummer igen får jeg bare en ny linie med samme nummer
sql="update personer set type='"&request.form("type")&"', dato='"&request.form("dato")&"', status='"&request.form("status")&"'where usg='"&request.form("usg")&"'"
til:
sql="update personer set type='"&request.form("type")&"', dato='"&request.form("dato")&"', status='"&request.form("status")&"'where usg='"&request.form("nummer")&"'"
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.