I have a simple support database which users can access on the intranet. It is on a Windows 2000 server. My ASP uses a DSN connection.
I know roughly how to use CDONTS and have tested this successfully. I am also able to create a form to add new records to the access 2000 .mdb file using Dreamweaver MX to create the code. What i would like to do is for the site to send an email to me summarising the details of the submitted support request. I tried adding the CDONTS code into the main page but it sent a blank email as soon as the "add request" page loaded. i think i need to change the way that i am addding the records by posting them to a second page which then posts the details to the database AND sends the mail, but im not sure how to do this. do i use server variables?? i am totally stuck and i have done countless searches on google and yahoo and lots of ASP sites! PLEASE help!!!
code for page as it stands which JUST enters the new record into the database is as follows:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="Connections/bookings.asp" -->
<%
' *** Edit Operations: declare variables
Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd
Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId
Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Request.QueryString
End If
' boolean to abort record edit
MM_abortEdit = false
' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables
If (CStr(Request("MM_insert")) = "form1") Then
MM_editConnection = MM_bookings_STRING
MM_editTable = "tbl_temp_bookings"
MM_editRedirectUrl = "view_temp_bookings.asp"
MM_fieldsStr = "str_consultant|value|str_company|value|str_job_ti tle|value|mem_job_description|value|str_source|val ue|str_used_before|value|str_number|value|str_pay| value|str_charge|value|str_hours_per_week|value|da t_start|value|str_duration|value|str_placed|value| str_reason|value|mem_notes|value|str_status|value| str_office|value|str_sector|value|str_contact|valu e|str_site_address|value|str_contact_number|value| str_promise48|value|str_hard_hat|value|str_safety_ boots|value|str_hours_of_work|value|mem_temps_sent |value|str_licence|value|str_qualifications|value| mem_experience|value"
MM_columnsStr = "str_consultant|',none,''|str_company|',none,''|st r_job_title|',none,''|mem_job_description|',none,' '|str_source|',none,''|str_used_before|',none,''|s tr_number|none,none,NULL|str_pay|',none,''|str_cha rge|',none,''|str_hours_per_week|',none,''|dat_sta rt|',none,NULL|str_duration|',none,''|str_placed|' ,none,''|str_reason|',none,''|mem_notes|',none,''| str_status|',none,''|str_office|',none,''|str_sect or|',none,''|str_contact|',none,''|str_site_addres s|',none,''|str_contact_number|',none,''|str_promi se48|',none,''|str_hard_hat|',none,''|str_safety_b oots|',none,''|str_hours_of_work|',none,''|mem_tem ps_sent|',none,''|str_licence|',none,''|str_qualif ications|',none,''|mem_experience|',none,''"
' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")
' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next
' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it
Dim MM_tableValues
Dim MM_dbValues
If (CStr(Request("MM_insert")) <> "") Then
' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If
End If
%>
<%
Dim qry_temp_bookings
Dim qry_temp_bookings_numRows
Set qry_temp_bookings = Server.CreateObject("ADODB.Recordset")
qry_temp_bookings.ActiveConnection = MM_bookings_STRING
qry_temp_bookings.Source = "SELECT * FROM tbl_temp_bookings"
qry_temp_bookings.CursorType = 0
qry_temp_bookings.CursorLocation = 2
qry_temp_bookings.LockType = 1
qry_temp_bookings.Open()
qry_temp_bookings_numRows = 0
%>
<%
Dim qry_sector
Dim qry_sector_numRows
Set qry_sector = Server.CreateObject("ADODB.Recordset")
qry_sector.ActiveConnection = MM_bookings_STRING
qry_sector.Source = "SELECT * FROM tbl_sector"
qry_sector.CursorType = 0
qry_sector.CursorLocation = 2
qry_sector.LockType = 1
qry_sector.Open()
qry_sector_numRows = 0
%>
<%
Dim qry_consultant
Dim qry_consultant_numRows
Set qry_consultant = Server.CreateObject("ADODB.Recordset")
qry_consultant.ActiveConnection = MM_bookings_STRING
qry_consultant.Source = "SELECT * FROM tbl_consultant"
qry_consultant.CursorType = 0
qry_consultant.CursorLocation = 2
qry_consultant.LockType = 1
qry_consultant.Open()
qry_consultant_numRows = 0
%>
<%
Dim qry_source
Dim qry_source_numRows
Set qry_source = Server.CreateObject("ADODB.Recordset")
qry_source.ActiveConnection = MM_bookings_STRING
qry_source.Source = "SELECT * FROM tbl_source"
qry_source.CursorType = 0
qry_source.CursorLocation = 2
qry_source.LockType = 1
qry_source.Open()
qry_source_numRows = 0
%>
<%
Dim qry_status
Dim qry_status_numRows
Set qry_status = Server.CreateObject("ADODB.Recordset")
qry_status.ActiveConnection = MM_bookings_STRING
qry_status.Source = "SELECT * FROM tbl_status"
qry_status.CursorType = 0
qry_status.CursorLocation = 2
qry_status.LockType = 1
qry_status.Open()
qry_status_numRows = 0
%>
<%
Dim qry_office
Dim qry_office_numRows
Set qry_office = Server.CreateObject("ADODB.Recordset")
qry_office.ActiveConnection = MM_bookings_STRING
qry_office.Source = "SELECT * FROM tbl_office"
qry_office.CursorType = 0
qry_office.CursorLocation = 2
qry_office.LockType = 1
qry_office.Open()
qry_office_numRows = 0
%>
<%
Dim qry_licence
Dim qry_licence_numRows
Set qry_licence = Server.CreateObject("ADODB.Recordset")
qry_licence.ActiveConnection = MM_bookings_STRING
qry_licence.Source = "SELECT * FROM tbl_licence"
qry_licence.CursorType = 0
qry_licence.CursorLocation = 2
qry_licence.LockType = 1
qry_licence.Open()
qry_licence_numRows = 0
%>
<%
Dim qry_yes_no
Dim qry_yes_no_numRows
Set qry_yes_no = Server.CreateObject("ADODB.Recordset")
qry_yes_no.ActiveConnection = MM_bookings_STRING
qry_yes_no.Source = "SELECT * FROM tbl_yes_no"
qry_yes_no.CursorType = 0
qry_yes_no.CursorLocation = 2
qry_yes_no.LockType = 1
qry_yes_no.Open()
qry_yes_no_numRows = 0
%>
<html>
<head>
<title>Works Recruitment - Bookings</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="100%" border="0">
<tr>
<td width="31%" valign="bottom"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="view_temp_bookings.asp">BACK</a>
| <a href="default.asp">MAIN MENU</a></font></td>
<td width="35%"> </td>
<td width="34%"><img src="images/works_logo.gif" width="250" height="65"></td>
</tr>
</table>
<form action="<%=MM_editAction%>" method="post" name="new_temp_booking" id="new_temp_booking">
<table align="center">
<tr valign="baseline">
<td width="168" align="right" nowrap><font face="Verdana, Arial, Helvetica, sans-serif">Consultant:</font></td>
<td width="354"> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_consultant">
<%
While (NOT qry_consultant.EOF)
%>
<option value="<%=(qry_consultant.Fields.Item("str_consult ant").Value)%>"><%=(qry_consultant.Fields.Item("st r_consultant").Value)%></option>
<%
qry_consultant.MoveNext()
Wend
If (qry_consultant.CursorType > 0) Then
qry_consultant.MoveFirst
Else
qry_consultant.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Company
name:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_company" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Job
title:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_job_title" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Job
description:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<textarea name="mem_job_description" cols="32"></textarea>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Source
of booking:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_source">
<%
While (NOT qry_source.EOF)
%>
<option value="<%=(qry_source.Fields.Item("str_source").Va lue)%>"><%=(qry_source.Fields.Item("str_source").V alue)%></option>
<%
qry_source.MoveNext()
Wend
If (qry_source.CursorType > 0) Then
qry_source.MoveFirst
Else
qry_source.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Used
us before?</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_used_before">
<%
While (NOT qry_yes_no.EOF)
%>
<option value="<%=(qry_yes_no.Fields.Item("str_yes_no").Va lue)%>"><%=(qry_yes_no.Fields.Item("str_yes_no").V alue)%></option>
<%
qry_yes_no.MoveNext()
Wend
If (qry_yes_no.CursorType > 0) Then
qry_yes_no.MoveFirst
Else
qry_yes_no.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Number
of positions:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input name="str_number" type="text" value="" size="5" maxlength="4">
[MUST be a number]</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Pay
rate:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_pay" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Charge
rate:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_charge" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Hours
of work:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_hours_per_week" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Start
date<font size="2">(DD/MM/YYYY)</font>:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input name="dat_start" type="text" value="DD/MM/YYYY" size="12" maxlength="10">
[MUST be a date] </font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Duration:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_duration" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Have
we placed:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_placed">
<%
While (NOT qry_yes_no.EOF)
%>
<option value="<%=(qry_yes_no.Fields.Item("str_yes_no").Va lue)%>"><%=(qry_yes_no.Fields.Item("str_yes_no").V alue)%></option>
<%
qry_yes_no.MoveNext()
Wend
If (qry_yes_no.CursorType > 0) Then
qry_yes_no.MoveFirst
Else
qry_yes_no.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">If
not, why not?:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_reason" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Notes
/ Further details:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<textarea name="mem_notes" cols="32"></textarea>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Status
<font size="2">(OPEN/CLOSED)</font>:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_status">
<%
While (NOT qry_status.EOF)
%>
<option value="<%=(qry_status.Fields.Item("str_status").Va lue)%>"><%=(qry_status.Fields.Item("str_status").V alue)%></option>
<%
qry_status.MoveNext()
Wend
If (qry_status.CursorType > 0) Then
qry_status.MoveFirst
Else
qry_status.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Which
Office?:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_office">
<%
While (NOT qry_office.EOF)
%>
<option value="<%=(qry_office.Fields.Item("str_office").Va lue)%>"><%=(qry_office.Fields.Item("str_office").V alue)%></option>
<%
qry_office.MoveNext()
Wend
If (qry_office.CursorType > 0) Then
qry_office.MoveFirst
Else
qry_office.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td height="27" align="right" nowrap><font face="Verdana, Arial, Helvetica, sans-serif">Which
Sector?:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_sector">
<%
While (NOT qry_sector.EOF)
%>
<option value="<%=(qry_sector.Fields.Item("str_sector").Va lue)%>"><%=(qry_sector.Fields.Item("str_sector").V alue)%></option>
<%
qry_sector.MoveNext()
Wend
If (qry_sector.CursorType > 0) Then
qry_sector.MoveFirst
Else
qry_sector.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Company
Contact:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_contact" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Site
Address:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<textarea name="str_site_address" cols="32"></textarea>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Contact
Number:</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_contact_number" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Promise
48? </font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_promise48">
<%
While (NOT qry_yes_no.EOF)
%>
<option value="<%=(qry_yes_no.Fields.Item("str_yes_no").Va lue)%>"><%=(qry_yes_no.Fields.Item("str_yes_no").V alue)%></option>
<%
qry_yes_no.MoveNext()
Wend
If (qry_yes_no.CursorType > 0) Then
qry_yes_no.MoveFirst
Else
qry_yes_no.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Hard
hat?</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_hard_hat">
<%
While (NOT qry_yes_no.EOF)
%>
<option value="<%=(qry_yes_no.Fields.Item("str_yes_no").Va lue)%>"><%=(qry_yes_no.Fields.Item("str_yes_no").V alue)%></option>
<%
qry_yes_no.MoveNext()
Wend
If (qry_yes_no.CursorType > 0) Then
qry_yes_no.MoveFirst
Else
qry_yes_no.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Safety
boots?</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_safety_boots">
<%
While (NOT qry_yes_no.EOF)
%>
<option value="<%=(qry_yes_no.Fields.Item("str_yes_no").Va lue)%>"><%=(qry_yes_no.Fields.Item("str_yes_no").V alue)%></option>
<%
qry_yes_no.MoveNext()
Wend
If (qry_yes_no.CursorType > 0) Then
qry_yes_no.MoveFirst
Else
qry_yes_no.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Hours
of work</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_hours_of_work" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Names
of temps sent</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<textarea name="mem_temps_sent" cols="32"></textarea>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Licences
required? </font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<select name="str_licence">
<%
While (NOT qry_licence.EOF)
%>
<option value="<%=(qry_licence.Fields.Item("licence").Valu e)%>"><%=(qry_licence.Fields.Item("licence").Value )%></option>
<%
qry_licence.MoveNext()
Wend
If (qry_licence.CursorType > 0) Then
qry_licence.MoveFirst
Else
qry_licence.Requery
End If
%>
</select>
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Qualifications
needed?</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="str_qualifications" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif">Experience
needed?</font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="mem_experience" value="" size="32">
</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><font face="Verdana, Arial, Helvetica, sans-serif"> </font></td>
<td> <font face="Verdana, Arial, Helvetica, sans-serif">
<input type="submit" value="ADD JOB">
</font></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form1">
</form>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="view_temp_bookings.asp">BACK</a>
| <a href="default.asp">MAIN MENU</a></font>
</body>
</html>
<%
qry_temp_bookings.Close()
Set qry_temp_bookings = Nothing
%>
<%
qry_sector.Close()
Set qry_sector = Nothing
%>
<%
qry_consultant.Close()
Set qry_consultant = Nothing
%>
<%
qry_source.Close()
Set qry_source = Nothing
%>
<%
qry_status.Close()
Set qry_status = Nothing
%>
<%
qry_office.Close()
Set qry_office = Nothing
%>
<%
qry_licence.Close()
Set qry_licence = Nothing
%>
<%
qry_yes_no.Close()
Set qry_yes_no = Nothing
%>