T
Travis
I have set up a form that I want to send to both email and to a
database. In this case, I used a sample northwind database to test this
because I could not get it to work with my database. I followed the
white paper from MS's website on doing this but if I do it exactly as
they explain it, I get the following error:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'ParseBody'
/email.asp, line 17
when I submit it. I am including the code that the paper says to paste
into the page for review.
It appears to be coming from the parsebody function, but if I comment it
out, it doesn't show the error, but it also doesn't send to either the
database or email, despite showing a confirmation page.
Thanks for any help.
<html>
<head>
<%
'========================================================
' When you press ENTER in a text box, a carriage return
' is created. A carriage return is represented by a
' Chr(13). Because this information will be displayed
' as HTML, replace the carriage returns with
' the <br> tag.
'========================================================
Function ParseBody(strText)
'=================================================
' This function replaces the Chr(13) with a <br>
' tag in whatever string is passed to it.
'=================================================
strText = Replace(strText, Chr(13), "<br>")
ParseBody = strText
End Function
'========================================================
' Send results to the database.
' This portion of the page sends the information
' from the form to the Northwind sample database.
'========================================================
'========================================================
' Variable declaration:
' myConnString = Connection string to database.
' myConnection = The database connection object.
' mySQL = The query string to be used.
'========================================================
Dim myConnString
Dim myConnection
Dim mySQL
'========================================================
' Set up connection string. When you created the
' database connection in FrontPage called "Sample",
' FrontPage created an Application variable in the
' Global.asa file called "Sample_ConnectionString".
'
' Use that connection string by populating the
' myConnString variable with the value contained
' in the Application variable.
'
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' You can modify this to work with your database by
' changing "Sample_ConnectionString" to reflect your
' FrontPage database connection. For example, if you
' defined your connection in FrontPage as "Database1",
' you would change the following line to this:
' myConnString = Application("Database1_ConnectionString")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
myConnString = Application("Sample_ConnectionString")
'========================================================
' When you are using custom ASP to set up a connection to
' a database, you use a Connection to connect to the
' database. The following line creates that connection and
' assigns the myConnection variable to contain the
' Connection object.
'========================================================
Set myConnection = Server.CreateObject("ADODB.Connection")
'========================================================
' After the connection has been created, open it so that
' information can be written to the database. To do
' that, use the Open method and pass it the connection
' string that you defined earlier.
'========================================================
myConnection.Open myConnString
'========================================================
' This is the SQL string that queries the database.
' In this example, Request.Form("[form_field]")
' pulls information from the form and populates the SQL
' string with it.
'
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' You can modify this SQL string to work with your own
' database by following this format. Pay special
' attention to the fact that spaces are not optional.
' -------------------------------------------------------
' mySQL = "INSERT INTO [your_table_name] "
' mySQL = mySQL & "([database_field_names]) "
' mySQL = mySQL & "VALUES ('[form_field_names]')"
' -------------------------------------------------------
' For more information about this, see the
' Customizing the Database Page section of this document..
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mySQL= "INSERT INTO Employees "
mySQL= mySQL & "(FirstName,LastName,Address,City,Region,PostalCode) "
mySQL= mySQL & "VALUES ('" & Request.Form("FirstName") & "','"
mySQL= mySQL & Request.Form("LastName") & "'"
mySQL= mySQL & ",'" & Request.Form("Address") & "'"
mySQL= mySQL & ",'" & Request.Form("City") & "','"
mySQL= mySQL & Request.Form("Region") & "','"
mySQL= mySQL & Request.Form("PostalCode") & "')"
'========================================================
' Execute the connection with the SQL string.
' This runs the SQL string against the database and inputs
' the information.
'=========================================================
myConnection.Execute mySQL
'=== Close the connection.
myConnection.Close
'=== Set the connection equal to Nothing.
'=== This frees resources used by it.
Set myConnection = Nothing
'===================================================================
' Send the results to e-mail.
' Use CDONTS to create and send a message based on information
' entered into the form. The following lines compose and send
' the e-mail.
'===================================================================
'====================================================================
' Set up variables:
' myCDONTSMail = A CDONTS mail object.
' strFrom = A string containing the source e-mail address.
' strTo = A string containing the destination e-mail address.
' strSubject = A string containing the subject of the e-mail.
' strBody = A string containing the body of the e-mail.
'====================================================================
Dim myCDONTSMail
Dim strFrom
Dim strTo
Dim strSubject
Dim strBody
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Assign the source e-mail address. Change this to your e-mail
' address.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strFrom="(e-mail address removed)"
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Assign the destination e-mail address. In this example, get the
' e-mail address from the form field called "EMail".
' You can customize this by removing the EMail form field and
' changing the following line to this:
' strTo="(e-mail address removed)"  Change this to your e-mail
' address.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strTo=Request.Form("EMail")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' The following line is the subject of the e-mail. You can change
' this to a subject that is customized to your liking.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strSubject = "Send to E-mail and Database"
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' The following lines create the body of the message. This can be
' anything you want it to be.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strBody="The following information was submitted:" & Chr(13)
strBody = strBody & Request.Form("FirstName") & " "
strBody = strBody & Request.Form("LastName")
strBody = strBody & Chr(13) & Request.Form("Address") & Chr(13)
strBody = strBody & Request.Form("City") & Chr(13)
strBody = strBody & Request.Form("Region") & Chr(13)
strBody = strBody & Request.Form("PostalCode") & Chr(13)
strBody = strBody & Chr(13) & "Thank you for submitting your data."
'====================================================================
' The SET statement creates the CDONTS mail object in preparation
' for sending the e-mail message.
'====================================================================
Set myCDONTSMail = CreateObject("CDONTS.NewMail")
'====================================================================
' The following line sends the mail message using the source e-mail,
' destination e-mail, subject, and body that were defined earlier.
'====================================================================
myCDONTSMail.Send strFrom,strTo,strSubject,strBody
'=== Set the CDONTS mail object to NOTHING to free resources.
Set myCDONTSMail = Nothing
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' For information about how to customize the rest of this page, see the
' Customizing the Confirmation Page section of this document. Sections
‘ that are discussed in the Customizations section are delimited
' by percent signs.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%>
</head>
<body bgcolor="#FFCC99">
<p><font face="Verdana" color="#FF0000"><b>Thank you for submitting your
information!<br>
</b></font><font face="Verdana" size="2">You will receive an e-mail
shortly. The e-mail was sent using the following
information:</font></p>
<b><b><font face="Verdana" size="2">Sent To:
<% '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Response.Write Request.Form("EMail")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%><br>
From : Microsoft PSS Sample Page</font></b></p>
<p><b><font face="Verdana" size="2">Subject: Send to Database and
E-mail</font></b></p>
<p><b><font face="Verdana" size="2">Content:
<% '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Call the ParseBody function and pass the strBody string to it.
' This will replace the Chr(13) characters with <br> tags in the HTML.
Response.Write(ParseBody(strBody))
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%>
</font></b></p>
<hr noshade size="1" style="color: #000000">
<p> </p>
</body>
</html>
database. In this case, I used a sample northwind database to test this
because I could not get it to work with my database. I followed the
white paper from MS's website on doing this but if I do it exactly as
they explain it, I get the following error:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'ParseBody'
/email.asp, line 17
when I submit it. I am including the code that the paper says to paste
into the page for review.
It appears to be coming from the parsebody function, but if I comment it
out, it doesn't show the error, but it also doesn't send to either the
database or email, despite showing a confirmation page.
Thanks for any help.
<html>
<head>
<%
'========================================================
' When you press ENTER in a text box, a carriage return
' is created. A carriage return is represented by a
' Chr(13). Because this information will be displayed
' as HTML, replace the carriage returns with
' the <br> tag.
'========================================================
Function ParseBody(strText)
'=================================================
' This function replaces the Chr(13) with a <br>
' tag in whatever string is passed to it.
'=================================================
strText = Replace(strText, Chr(13), "<br>")
ParseBody = strText
End Function
'========================================================
' Send results to the database.
' This portion of the page sends the information
' from the form to the Northwind sample database.
'========================================================
'========================================================
' Variable declaration:
' myConnString = Connection string to database.
' myConnection = The database connection object.
' mySQL = The query string to be used.
'========================================================
Dim myConnString
Dim myConnection
Dim mySQL
'========================================================
' Set up connection string. When you created the
' database connection in FrontPage called "Sample",
' FrontPage created an Application variable in the
' Global.asa file called "Sample_ConnectionString".
'
' Use that connection string by populating the
' myConnString variable with the value contained
' in the Application variable.
'
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' You can modify this to work with your database by
' changing "Sample_ConnectionString" to reflect your
' FrontPage database connection. For example, if you
' defined your connection in FrontPage as "Database1",
' you would change the following line to this:
' myConnString = Application("Database1_ConnectionString")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
myConnString = Application("Sample_ConnectionString")
'========================================================
' When you are using custom ASP to set up a connection to
' a database, you use a Connection to connect to the
' database. The following line creates that connection and
' assigns the myConnection variable to contain the
' Connection object.
'========================================================
Set myConnection = Server.CreateObject("ADODB.Connection")
'========================================================
' After the connection has been created, open it so that
' information can be written to the database. To do
' that, use the Open method and pass it the connection
' string that you defined earlier.
'========================================================
myConnection.Open myConnString
'========================================================
' This is the SQL string that queries the database.
' In this example, Request.Form("[form_field]")
' pulls information from the form and populates the SQL
' string with it.
'
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' You can modify this SQL string to work with your own
' database by following this format. Pay special
' attention to the fact that spaces are not optional.
' -------------------------------------------------------
' mySQL = "INSERT INTO [your_table_name] "
' mySQL = mySQL & "([database_field_names]) "
' mySQL = mySQL & "VALUES ('[form_field_names]')"
' -------------------------------------------------------
' For more information about this, see the
' Customizing the Database Page section of this document..
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mySQL= "INSERT INTO Employees "
mySQL= mySQL & "(FirstName,LastName,Address,City,Region,PostalCode) "
mySQL= mySQL & "VALUES ('" & Request.Form("FirstName") & "','"
mySQL= mySQL & Request.Form("LastName") & "'"
mySQL= mySQL & ",'" & Request.Form("Address") & "'"
mySQL= mySQL & ",'" & Request.Form("City") & "','"
mySQL= mySQL & Request.Form("Region") & "','"
mySQL= mySQL & Request.Form("PostalCode") & "')"
'========================================================
' Execute the connection with the SQL string.
' This runs the SQL string against the database and inputs
' the information.
'=========================================================
myConnection.Execute mySQL
'=== Close the connection.
myConnection.Close
'=== Set the connection equal to Nothing.
'=== This frees resources used by it.
Set myConnection = Nothing
'===================================================================
' Send the results to e-mail.
' Use CDONTS to create and send a message based on information
' entered into the form. The following lines compose and send
' the e-mail.
'===================================================================
'====================================================================
' Set up variables:
' myCDONTSMail = A CDONTS mail object.
' strFrom = A string containing the source e-mail address.
' strTo = A string containing the destination e-mail address.
' strSubject = A string containing the subject of the e-mail.
' strBody = A string containing the body of the e-mail.
'====================================================================
Dim myCDONTSMail
Dim strFrom
Dim strTo
Dim strSubject
Dim strBody
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Assign the source e-mail address. Change this to your e-mail
' address.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strFrom="(e-mail address removed)"
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Assign the destination e-mail address. In this example, get the
' e-mail address from the form field called "EMail".
' You can customize this by removing the EMail form field and
' changing the following line to this:
' strTo="(e-mail address removed)"  Change this to your e-mail
' address.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strTo=Request.Form("EMail")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' The following line is the subject of the e-mail. You can change
' this to a subject that is customized to your liking.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strSubject = "Send to E-mail and Database"
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' The following lines create the body of the message. This can be
' anything you want it to be.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strBody="The following information was submitted:" & Chr(13)
strBody = strBody & Request.Form("FirstName") & " "
strBody = strBody & Request.Form("LastName")
strBody = strBody & Chr(13) & Request.Form("Address") & Chr(13)
strBody = strBody & Request.Form("City") & Chr(13)
strBody = strBody & Request.Form("Region") & Chr(13)
strBody = strBody & Request.Form("PostalCode") & Chr(13)
strBody = strBody & Chr(13) & "Thank you for submitting your data."
'====================================================================
' The SET statement creates the CDONTS mail object in preparation
' for sending the e-mail message.
'====================================================================
Set myCDONTSMail = CreateObject("CDONTS.NewMail")
'====================================================================
' The following line sends the mail message using the source e-mail,
' destination e-mail, subject, and body that were defined earlier.
'====================================================================
myCDONTSMail.Send strFrom,strTo,strSubject,strBody
'=== Set the CDONTS mail object to NOTHING to free resources.
Set myCDONTSMail = Nothing
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' For information about how to customize the rest of this page, see the
' Customizing the Confirmation Page section of this document. Sections
‘ that are discussed in the Customizations section are delimited
' by percent signs.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%>
</head>
<body bgcolor="#FFCC99">
<p><font face="Verdana" color="#FF0000"><b>Thank you for submitting your
information!<br>
</b></font><font face="Verdana" size="2">You will receive an e-mail
shortly. The e-mail was sent using the following
information:</font></p>
<b><b><font face="Verdana" size="2">Sent To:
<% '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Response.Write Request.Form("EMail")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%><br>
From : Microsoft PSS Sample Page</font></b></p>
<p><b><font face="Verdana" size="2">Subject: Send to Database and
E-mail</font></b></p>
<p><b><font face="Verdana" size="2">Content:
<% '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Call the ParseBody function and pass the strBody string to it.
' This will replace the Chr(13) characters with <br> tags in the HTML.
Response.Write(ParseBody(strBody))
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%>
</font></b></p>
<hr noshade size="1" style="color: #000000">
<p> </p>
</body>
</html>