<%@ LANGUAGE="VBScript" %> <% '------------------------------------------------------------------------------- ' Microsoft Visual InterDev - Data Form Wizard ' ' Action Page ' ' (c) 1997 Microsoft Corporation. All Rights Reserved. ' ' This file is an Active Server Page that contains the server script that ' handles filter, update, insert, and delete commands from the form view of a ' Data Form. It can also echo back confirmation of database operations and ' report errors. Some commands are passed through and redirected. Microsoft ' Internet Information Server 3.0 is required. ' '------------------------------------------------------------------------------- Dim strDFName Dim strErrorAdditionalInfo strDFName = "rs<%#TableShortName#%>" %> <%#ForeignKeyRS#%> <% If Not IsEmpty(Request("DataAction")) Then strDataAction = Trim(Request("DataAction")) Else Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit" End If '------------------ ' Action handler '------------------ Select Case strDataAction Case "List View" Response.Redirect "<%#DataListFileName#%>" Case "Cancel" Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit" Case "Filter" On Error Resume Next Session("rs<%#TableShortName#%>_Filter") = "" Session("rs<%#TableShortName#%>_FilterDisplay") = "" Session("rs<%#TableShortName#%>_Recordset").Filter = "" Response.Redirect "<%#DataFormFileName#%>?FormMode=" & strDataAction Case "New" On Error Resume Next Session("rs<%#TableShortName#%>_Filter") = "" Session("rs<%#TableShortName#%>_FilterDisplay") = "" Session("rs<%#TableShortName#%>_Recordset").Filter = "" Response.Redirect "<%#DataFormFileName#%>?FormMode=" & strDataAction Case "Find" Session("rs<%#TableShortName#%>_PageSize") = 1 'So we don't do standard page conversion Session("rs<%#TableShortName#%>_AbsolutePage") = CLng(Request("Bookmark")) Response.Redirect "<%#DataFormFileName#%>" Case "All Records" On Error Resume Next Session("rs<%#TableShortName#%>_Filter") = "" Session("rs<%#TableShortName#%>_FilterDisplay") = "" Session("rs<%#TableShortName#%>_Recordset").Filter = "" Session("rs<%#TableShortName#%>_AbsolutePage") = 1 Response.Redirect "<%#DataFormFileName#%>" Case "Apply" On Error Resume Next ' Make sure we exit and re-process the form if session has timed out If IsEmpty(Session("rs<%#TableShortName#%>_Recordset")) Then Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit" End If Set rs<%#TableShortName#%> = Session("rs<%#TableShortName#%>_Recordset") strWhere = "" strWhereDisplay = "" <%#BuildFilterHTML#%> ' Filter the recordset If strWhere <> "" Then Session("rs<%#TableShortName#%>_Filter") = strWhere Session("rs<%#TableShortName#%>_FilterDisplay") = strWhereDisplay Session("rs<%#TableShortName#%>_AbsolutePage") = 1 Else Session("rs<%#TableShortName#%>_Filter") = "" Session("rs<%#TableShortName#%>_FilterDisplay") = "" End If ' Jump back to the form If Err.Number = 0 Then Response.Redirect "<%#DataFormFileName#%>" Case "Insert" On Error Resume Next ' Make sure we exit and re-process the form if session has timed out If IsEmpty(Session("rs<%#TableShortName#%>_Recordset")) Then Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit" End If Set rs<%#TableShortName#%> = Session("rs<%#TableShortName#%>_Recordset") rs<%#TableShortName#%>.AddNew Do <%#RecordsetFieldsInsert#%> rs<%#TableShortName#%>.Update Exit Do Loop If Err.Number <> 0 Then If rs<%#TableShortName#%>.EditMode Then rs<%#TableShortName#%>.CancelUpdate Else If IsEmpty(Session("rs<%#TableShortName#%>_AbsolutePage")) Or Session("rs<%#TableShortName#%>_AbsolutePage") = 0 Then Session("rs<%#TableShortName#%>_AbsolutePage") = 1 End If ' Requery static cursor so inserted record is visible If rs<%#TableShortName#%>.CursorType = adOpenStatic Then rs<%#TableShortName#%>.Requery Session("rs<%#TableShortName#%>_Status") = "Record has been inserted" End If Case "Update" On Error Resume Next ' Make sure we exit and re-process the form if session has timed out If IsEmpty(Session("rs<%#TableShortName#%>_Recordset")) Then Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit" End If Set rs<%#TableShortName#%> = Session("rs<%#TableShortName#%>_Recordset") If rs<%#TableShortName#%>.EOF and rs<%#TableShortName#%>.BOF Then Response.Redirect "<%#DataFormFileName#%>" Do <%#RecordsetFieldsUpdate#%> If rs<%#TableShortName#%>.EditMode Then rs<%#TableShortName#%>.Update Exit Do Loop If Err.Number <> 0 Then If rs<%#TableShortName#%>.EditMode Then rs<%#TableShortName#%>.CancelUpdate End If Case "Delete" On Error Resume Next ' Make sure we exit and re-process the form if session has timed out If IsEmpty(Session("rs<%#TableShortName#%>_Recordset")) Then Response.Redirect "<%#DataFormFileName#%>?FormMode=Edit" End If Set rs<%#TableShortName#%> = Session("rs<%#TableShortName#%>_Recordset") If rs<%#TableShortName#%>.EOF and rs<%#TableShortName#%>.BOF Then Response.Redirect "<%#DataFormFileName#%>" rs<%#TableShortName#%>.Delete ' Proceed if no error If Err.Number = 0 Then ' Requery static cursor so deleted record is removed If rs<%#TableShortName#%>.CursorType = adOpenStatic Then rs<%#TableShortName#%>.Requery ' Move off deleted rec rs<%#TableShortName#%>.MoveNext ' If at EOF then jump back one and adjust AbsolutePage If rs<%#TableShortName#%>.EOF Then Session("rs<%#TableShortName#%>_AbsolutePage") = Session("rs<%#TableShortName#%>_AbsolutePage") - 1 If rs<%#TableShortName#%>.BOF And rs<%#TableShortName#%>.EOF Then rs<%#TableShortName#%>.Requery End If End If End Select %> <% ' If Err Then %> <% ' Add additional error information to clarify specific errors Select Case Err.Number Case -2147467259 strErrorAdditionalInfo = " This may be caused by an attempt to update a non-primary table in a view." Case Else strErrorAdditionalInfo = "" End Select %> <%#FormName#%> Form
 Message: 
<% Select Case strDataAction Case "Insert" Response.Write("Unable to insert the record into <%#TableName#%>.") Case "Update" Response.Write("Unable to post the updated record to <%#TableName#%>.") Case "Delete" Response.Write("Unable to delete the record from <%#TableName#%>.") End Select %>
  Item Description
  Source: <%= Err.Source %>
  Error Number: <%= Err.Number %>
  Description: <%= Server.HTMLEncode(Err.Description & strErrorAdditionalInfo) %>

<% Response.Write "
"" METHOD=""POST"">" %>
To return to the form view with the previously entered information intact, use your browsers "back" button
<% Else %> <%#Feedback#%> <% End If Set rs<%#TableShortName#%> = Nothing %>