<%
' Generic ASP Editor for Access Tables
' Version 1.01 - 9 November 1999
' ?Roman Koch
' =====================================================================
' Your customisations go here
' =====================================================================
' Enter the name of the system DSN
Session("myDSN") = "MP3"
' Enter the name of the table you want to edit
' Note: For text fields, the "Allow Zero Length" attribute must be set to YES
Session("myTable") = "Customer"
' Enter the name of the Primary Key field
' Note: The Primary Key MUST be a "Autonumber"-type field
Session("myKey") = "CustomerID"
' =====================================================================
' End of the customisation section
' =====================================================================
Dim objConn
If isObject(Session("dsnDefined")) Then
Set objConn = Session("dsnDefined")
Else
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open Session("myDSN")
Set Session("dsnDefined") = objConn
End If
strMyOwnPath = Request.Servervariables("PATH_INFO")
intStart = InstrRev(strMyOwnPath,"/",-1,1)
strMyName = Mid(strMyOwnPath,intStart+1)
Session("myName") = strMyName
strAction = Request.Querystring("action")
lngRecord = Request.Querystring("num")
Select Case strAction
Case "list" 'list all records
Call editList()
Case "update" 'Get the current record and display in a form for editing
Call editUpdate(lngRecord)
Case "updateExec" 'Save the changes
Call editUpdateExec(lngRecord)
Case "insert" 'Display an empty form for entering a new record
Call editInsert()
Case "insertExec" 'Save the new record
Call editInsertExec()
Case "delete" 'Display the current record so deletion can be confirmed
Call editDelete(lngRecord)
Case "deleteExec" 'Delete the record
Call editDeleteExec(lngRecord)
Case Else 'same as list parameter
Call editList()
End Select
%>
'======================================================================
Function editUpdate(lngRecord)
'======================================================================
strMyTable = Session("myTable")
strMyKey = Session("myKey")
strMyName = Session("myName")
sqlQuery = "SELECT * FROM " & strMyTable & " WHERE " & strMyKey & "=" & lngRecord
Set objRS = objConn.Execute(sqlQuery)
intFieldCount = objRS.Fields.Count - 1
Response.Write "
Response.Write "
"Response.Write "
Update Record
"Response.Write "
"Response.Write "
"
Set objRS = Nothing
End Function
'======================================================================
Function editUpdateExec(lngRecord)
'======================================================================
strMyTable = Session("myTable")
strMyKey = Session("myKey")
strMyName = Session("myName")
sqlQuery = "SELECT * FROM " & strMyTable & " WHERE " & strMyKey & "=" & lngRecord
Set objRS = objConn.Execute(sqlQuery)
intFieldCount = objRS.Fields.Count - 1
sqlQuery = "UPDATE " & strMyTable & " Set "
For i = 0 To intFieldCount
strName = objRS(i).Name
strValue = objRS(i).Value
If strName <> strMyKey Then
If (Vartype(strValue) >= 2) And (VarType(strValue) <= 6) Then
sqlQuery = sqlQuery & strName & "=" & Request.Form(strName)
Else
sqlQuery = sqlQuery & strName & "='" & Request.Form(strName) & "'"
End If
If i < intFieldCount Then sqlQuery = sqlQuery & ", "
End If
Next
sqlQuery = sqlQuery & " WHERE " & strMyKey & "=" & request.form(strMyKey)
objConn.Execute(sqlQuery)
Set objRS = Nothing
Response.Redirect strMyName
End Function
'======================================================================
Function editInsert()
'======================================================================
strMyTable = Session("myTable")
strMyKey = Session("myKey")
strMyName = Session("myName")
Response.Write "
Response.Write "
"Response.Write "
Create Record
"Response.Write "
"Response.Write "
"
Set objRS = Nothing
End Function
'======================================================================
Function editInsertExec()
'======================================================================
strMyTable = Session("myTable")
strMyKey = Session("myKey")
strMyName = Session("myName")
sqlQuery = "SELECT * FROM " & strMyTable 'we do this query just to learn the field names
Set objRS = objConn.Execute(sqlQuery)
intFieldCount = objRS.Fields.Count - 1
sqlQuery = "INSERT INTO " & strMyTable & " ("
For i = 0 To intFieldCount
strName = objRS(i).Name
strValue = objRS(i).Value
If strName <> strMyKey Then
sqlQuery = sqlQuery & strName
If i < intFieldCount Then sqlQuery = sqlQuery & ", "
End If
Next
sqlQuery = sqlQuery & ") VALUES ("
For i = 0 To intFieldCount
strName = objRS(i).Name
strValue = objRS(i).Value
If strName <> strMyKey Then
If (Vartype(strValue) >= 2) And (VarType(strValue) <= 6) Then
sqlQuery = sqlQuery & Request.Form(strName)
Else
sqlQuery = sqlQuery & "'" & Request.Form(strName) & "'"
End If
If i < intFieldCount Then sqlQuery = sqlQuery & ", "
End If
Next
sqlQuery = sqlQuery & ")"
objConn.Execute(sqlQuery)
Set objRS = Nothing
Response.Redirect strMyName
End Function
'======================================================================
Function editDelete(lngRecord)
'======================================================================
strMyTable = Session("myTable")
strMyKey = Session("myKey")
strMyName = Session("myName")
sqlQuery = "SELECT * FROM " & strMyTable & " WHERE " & strMyKey & "=" & lngRecord
Set objRS = objConn.Execute(sqlQuery)
intFieldCount = objRS.Fields.Count -1
Response.Write "
Response.Write "
"Response.Write "
Delete Record
"Response.Write "
"Response.Write "
"
Set objRS = Nothing
End Function
'======================================================================
Function editDeleteExec(lngRecord)
'======================================================================
strMyTable = Session("myTable")
strMyKey = Session("myKey")
strMyName = Session("myName")
objConn.Execute("DELETE * FROM " & strMyTable & " WHERE " & strMyKey & "=" & lngRecord)
Response.Redirect strMyName
End Function
'======================================================================
Function editList()
'======================================================================
strMyTable = Session("myTable")
strMyKey = Session("myKey")
strMyName = Session("myName")
dim objRS
Set objRS = objConn.Execute("SELECT * FROM " & strMyTable)
intFieldCount = objRS.Fields.Count - 1
Response.Write "
Response.Write ""
Response.Write "
"Response.Write "
" & strMyTable & "
"
Response.Write "
| Befehl | "" & objRS(i).Name & " | "||
|
& ">Edit "Response.Write "New " Response.Write "
& ">Del | "
"
Else If (Vartype(varFieldValue) >= 2) And (Vartype(varFieldValue) <= 6) Then Response.Write " | " & varFieldValue
Else Response.Write " | " & varFieldValue
End If End If Response.Write " | "
Response.Write "
"
objRS.Close
Set objRS = Nothing
End Function

