• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 271
  • Last Modified:

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
0
irina
Asked:
irina
1 Solution
 
sybeCommented:
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.

0
 
irinaAuthor Commented:
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.

0
 
sybeCommented:
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/
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
irinaAuthor Commented:
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
0
 
sybeCommented:
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
---------------------------------

0
 
irinaAuthor Commented:
Sorry, I don't have access to the control panel.
0
 
sybeCommented:
??

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.


0
 
irinaAuthor Commented:
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.
0
 
alweinerCommented:
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...
0
 
irinaAuthor Commented:
hi,

I'd appreciate some more detailed information. Should the asp file be different from the HTML form, etc.?
0
 
MasseyMCommented:
Using Sybes marvelous example, I adapted it a little... You don't have to create a DSN at the control panel... You can do it dynamically...

Use this:

<!-- #include Virtual="/YourVirtualDir/TDSN.Asp" -->
Place this tag at the top of every page you want to access the database with (ie the UPDATE.ASP page)

---------------------------------- TDSN.ASP File ---------------
<%
  Dim sDB, sPath, sDSN, sScriptDir

  sDB   = "survey.mdb"  ' Your database name

  sScriptDir = "/VirtualDirToDatabase" ' Virtual Directory to Database

  ' Set the virtual Directory
  sPath = Server.MapPath(sScriptDir) & "\"

  ' This is the resulting DSN string
  sDSN = "filedsn=" & sPath & "GoldenPlates.Dsn;DefaultDir=" & sPath & ";DBQ=" & sPath & sDB & ";"
%>

Now, where Sybe said to use Conn.Open "DSN=Survey" use this instead...
Conn.Open sDSN

You can then access the database...

Please split the points between Sybe and I.
0

Featured Post

Prep for the ITIL® Foundation Certification Exam

December’s Course of the Month is now available! Enroll to learn ITIL® Foundation best practices for delivering IT services effectively and efficiently.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now