Link to home
Start Free TrialLog in
Avatar of irina
irina

asked on

Need Help with Form to File Script

Hi,

I have to conduct a web survey next week and need the responses inputed into a MS Access database. The webserver is on a Windows NT machine with ASP components installed. I'm pretty familiar with HTML and slightly familiar with Perl scripts (using them, not coding) but am entirely new to ASP. Please help.

Thanks,

Priyo
Avatar of sybe
sybe

Supposing you have the HTML form for the survey and the Access database to store the result, both ready, it is quite easy to make the ASP.
My suggestion is that you post the HTML-form and the structure of the database. There are several people here visiting daily that can create the ASP for you and post it here.

Avatar of irina

ASKER

Hi,

The HTML form can be seen here: http://members.tripod.com/~kdsa/survey.htm
The Access Database can be found here: http://members.tripod.com/~kdsa/survey.mdb

The access database has three fields -- fields 1 (question 1) and 2 (question 2) are number fields while field 3 (question 3) is for text responses (I've set the character length at 255, the max).  I've filled in the contents of the fields for one record -- the coding is as follows:
SA - 5
A - 4
U - 3
D - 2
SD - 1

Thanks.

I could not download the database, so I made one myself.
I have got it working.

You can download the file from
ftp://195.240.30.16/EE/
Avatar of irina

ASKER

Hi,

I tried it -- it didn't work.  What specific ASP components does this require? I have to check with the sysadmin to make sure that we have them installed.

Thanks,

Priyo
Sorry, I think it needs some explanation, which I forgot:

You have to make an ODBC-connection on the machine with the webserver.

I'll step through the code and explain it:

(update.asp)
==============
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=survey"
==============

This piece of code makes a connection to the database.
The name of the connection is "Conn" which is a pretty default name, but you can use any name you want.

The first line "creates" a connection object.

The second line gives the connection object a value. The value is related to the ODBC name of the database.
What I have done (and what you should do) is create an ODBC to the survey database. This can be done using Control Panel / OBDC32 / System DSN / Add

Select driver: MS Access /finish

Then give it a name (remember this name, I called it "survey", and that is what I use in the ASP-statement), and select the database.

=======================
strSQL = "INSERT INTO survey (question1, question2, comment ) values (" & Request.Form("question1") & "," & Request.Form("question2") & ",'" & REPLACE(Request.Form("comment"),"'","''") & "')"

Response.write strSQL
========================

The strSQL is a variable that makes up the SQL statement for the database. If you are familiar witrh SQL then you should understand, if not, just believe me

Response.write strSQL is not important, in fact it only write the SQL statement to the browser, I put that in to check for any errors. Leave it out, because it is ugly.

=============
Conn.Execute(strSQL)
=============
Will send the strSQL to the database through the ODBC connection. In the database the SQL statement is carried out.



Probably the only thing you should do is create the ODBC
---------------------------------

Avatar of irina

ASKER

Sorry, I don't have access to the control panel.
??

Then let someone else do it for you, if you "have to" then it seems logical that someone should do for you what you are not allowed to do personally.

You can however make a connection without creating an ODBC, I'll have to find that out.


Avatar of irina

ASKER

Sorry if I sounded brusque but we're in a bind -- basically, we have to get something done with very little help (and a whole lot of obstacles) from the Computing Center here.

Thanks for your effort.
Lets say you've got variables a,b,c,d

<form action="tricky.asp" method="post">
... I assume you know how to do a form
</form>

In tricky.asp (note: comments begin with a single quote):
<HTML>
<BODY>
<%
' get the data from the form
a0=request.form("a")
b0=request.form("b")
c0=request.form("c")
d0=request.form("d")
'
' Open a text file and append the data to it
set filesys=CreateObject("Scripting.FileSystemObject")
'
' Note: you can call the file anything you want, however,
' you will need to find a directory where you can write a file
' and put the path of that directory as part of the filename
set f=filesys.OpenTextFile("output.txt",ForAppending,true)
f.WriteLine a0 & "," & b0 & "," & c0 & "," & d0
f.Close
set f=nothing
set filesys=nothing
%>
Thank you for sending us your data!
</body>
</html>
'======= end of tricky.asp don't include this line =====

When people are done entering the data, you can import the
data from the ascii file into the access database.  The
advantage to this is, you don't have to worry about ODBC or
any of that setup stuff...
Avatar of irina

ASKER

hi,

I'd appreciate some more detailed information. Should the asp file be different from the HTML form, etc.?
ASKER CERTIFIED SOLUTION
Avatar of MasseyM
MasseyM

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial