| Her er to SQL statements til henholdsvis Update og Insert. De to scripts fungerer således at hver gang en bruger skal sende en form der skal lægges ind, eller opdateres, i en tabel så henvises der fra formen til et script. Således kan du have flere forskellige formularer på dit site, der henviser til et script.
 
 Bemærk at de to scriptets kun kan indsætte data i en tabel.
 Koden er kommenteret.
 
 GLOBAL
 'Database Connect
 sub openDatabaseConnection()
 set Connection=server.createobject("adodb.connection")
 path="DBQ=" & server.mappath("database/database.mdb")
 Connection.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & path, 1, 3
 end sub
 
 'Database Close
 sub closeDatabaseConnection()
 Connection.close
 Set Connection = Nothing
 end sub
 
 
 
 Insert Statement -------------------------------------------------------
 
 HTML Form:
 <table>
 <form action="_include_insert.asp" method="post">
 <!--Denne Hidden skal altid indsættes med name="tableName"
 Værdien angiver den tabel hvor formdataene skal indsættes-->
 <input type="hidden" name="tableName" value="Tabel2">
 <tr>
 <td>Feltnavn1:</td>
 <td><input type="text" name="feltnavn1"></td>
 </tr>
 <tr>
 <td>Feltnavn2:</td>
 <td><input type="text" name="feltnavn2"></td>
 </tr>
 <tr>
 <td>Feltnavn3:</td>
 <td><input type="text" name="feltnavn3"></td>
 </tr>
 <tr>
 <td>Feltnavn4:</td>
 <td><input type="text" name="feltnavn4"></td>
 </tr>
 <tr>
 <td></td>
 <td><input type="submit" value="Send"></td>
 </tr>
 </form>
 </table
 
 ASP Script:
 <%
 'Insert Method Version 1.0
 'Insætter alle formfelter i en tabel, der har det tilsvarende antal kolonner
 'Bemærk at tabellen skal indeholde et unikt ID og denne skal være den første kolonne
 
 if Request.ServerVariables("REQUEST_METHOD") = "POST" then
 Call openDatabaseConnection
 SqlQ = "Select * From " & request("tableName")
 Set retur_SqlQ = Connection.execute(SqlQ)
 Set addRec = Server.CreateObject("ADODB.Recordset")
 addRec.CursorLocation = 3
 addRec.Open "" & request("tableName") & "", Connection, 1, 3
 addRec.AddNew
 'Tæller hvor mange kolonner der er i tabellen
 for each x in retur_SqlQ.fields
 count_x = count_x+1
 next
 'Tæller antal requests
 for each i in Request.Form
 count_i = count_i+1
 if count_i = 1 then
 seperation = ""
 else
 seperation = "~"
 end if
 if Request.Form(i) = "" then
 value_i = " "
 else
 value_i = Request.Form(i)
 end if
 formField = formField & replace(value_i, "" & request("tableName") & "", "") & seperation
 Next
 'Verificer at count_x og count_i er lig med hinanden.
 if count_x-1 = count_i-1 then
 'Indlæser lortet ind i tabellen
 for each z in retur_SqlQ.fields
 count_z = count_z+1
 if count_z <> 1 then
 if temp_formField <> "" then
 if Len(temp_formField) = 2 then
 formField = right(formField, len(formField)-2)
 else
 formField = replace(formField, "" & temp_formField & "", "")
 end if
 end if
 n = 0
 n = n + 1
 varlength = InStr(n, formField, "~", 0)
 tempvarlengt = varlength
 found = True
 temp_formField = left(formField, tempvarlengt)
 addRec(z.name) = replace(temp_formField, "~", "")
 end if
 next
 end if
 addRec.Update
 addRec.Close
 Set addRec = Nothing
 Call closeDatabaseConnection
 end if
 %>
 
 
 UPDATE Statement -------------------------------------------------------
 
 HTML Form:
 <%
 Call openDatabaseConnection
 SqlQ = "Select * From Tabel1"
 Set retur_SqlQ = Connection.execute(SqlQ)
 ID         = retur_SqlQ("ID")
 feltNavn1 = retur_SqlQ("feltNavn1")
 feltNavn2 = retur_SqlQ("feltNavn2")
 feltNavn3 = retur_SqlQ("feltNavn3")
 feltNavn4 = retur_SqlQ("feltNavn4")
 Call closeDatabaseConnection
 %>
 <table>
 <form action="_include_update.asp" method="post">
 <!--Denne Hidden skal altid indsættes med name="tableName"
 Værdien angiver den tabel hvor formdataene skal indsættes-->
 <input type="hidden" name="tableName" value="Tabel1">
 <!--Denne Hidden skal altid indsættes med name="ID"
 Værdien angiver udtrækkets ID som anvendes ved opdatering-->
 <input type="hidden" name="ID" value="<%= ID %>">
 <tr>
 <td>Feltnavn1:</td>
 <td><input type="text" name="feltnavn1" value="<%= feltNavn1 %>"></td>
 </tr>
 <tr>
 <td>Feltnavn2:</td>
 <td><input type="text" name="feltnavn2" value="<%= feltNavn2 %>"></td>
 </tr>
 <tr>
 <td>Feltnavn3:</td>
 <td><input type="text" name="feltnavn3" value="<%= feltNavn3 %>"></td>
 </tr>
 <tr>
 <td>Feltnavn4:</td>
 <td><input type="text" name="feltnavn4" value="<%= feltNavn4 %>"></td>
 </tr>
 <tr>
 <td></td>
 <td><input type="submit" value="Send"></td>
 </tr>
 </form>
 </table>
 
 ASP Script:
 
 <%
 'Update Method Version 1.0
 'Erstatter alle formfelter i en tabel, der har det tilsvarende antal kolonner
 'Bemærk at tabellen skal indeholde et unikt ID og denne skal være den første kolonne
 
 if Request.ServerVariables("REQUEST_METHOD") = "POST" then
 Call openDatabaseConnection
 SqlQ = "Select * From " & request("tableName")
 Set retur_SqlQ = Connection.execute(SqlQ)
 'Tæller hvor mange kolonner der er i tabellen og læser ID feltet
 for each x in retur_SqlQ.fields
 count_x = count_x+1
 if count_x = 1 then
 fieldID = (x.name)
 end if
 next
 Set updateRec = Server.CreateObject("ADODB.Recordset")
 updateRec.CursorLocation = 3
 updateRec.Filter = "" & fieldID & " = " & request("ID") & ""
 updateRec.Open "" & request("tableName") & "", Connection, 1, 3
 updateRec.Update
 'Tæller antal requests
 for each i in Request.Form
 count_i = count_i+1
 if count_i = 1 then
 seperation = ""
 else
 seperation = "~"
 end if
 if Request.Form(i) = "" then
 value_i = " "
 else
 value_i = Request.Form(i)
 end if
 formField = formField & replace(value_i, "" & request("tableName") & "", "") & seperation
 'response.write formField & "<br><br>"
 Next
 'Her fjerner vi ID'et - det er lidt tricky he he
 n = 0
 n = n + 1
 varIDLenght = InStr(n, formField, "~", 0)
 tempVarIDLenght = varIDLenght
 found = True
 formFieldID = left(formField, tempVarIDLenght)
 formField = mid(formField, len(formFieldID)+1, len(formField)-len(formFieldID))
 'Verificer at count_x og count_i er lig med hinanden.
 if count_x-1 = count_i-2 then
 'Indlæser lortet ind i tabellen
 for each z in retur_SqlQ.fields
 count_z = count_z+1
 if count_z <> 1 then
 if temp_formField <> "" then
 if Len(temp_formField) = 2 then
 formField = right(formField, len(formField)-2)
 else
 formField = replace(formField, "" & temp_formField & "", "")
 end if
 end if
 n = 0
 n = n + 1
 varlength = InStr(n, formField, "~", 0)
 tempvarlengt = varlength
 found = True
 temp_formField = left(formField, tempvarlengt)
 updateRec(z.name) = replace(temp_formField, "~", "")
 end if
 next
 end if
 updateRec.Update
 updateRec.Close
 Set updateRec = Nothing
 Call closeDatabaseConnection
 end if
 %>
 
 
 
 
 |