Groups | Blog | Home
all groups > inetserver asp db > september 2003 >

inetserver asp db : can't get my edit-form to work - querystring-problem ?



fredda054 NO[at]SPAM hotmail.com
9/30/2003 2:05:57 PM
Hi !
got another problem...can't seem to get enough of them =)
i have a table in my database called 'Accounts', which contains a
bunch of users, with ID, username, password etc. in my main admin-page
menu, i klick 'edit user' and all users in the db-table are listed
nicely in a table. i've made the 'Pnr' (the ID) a link so i can click
it to choose which user to edit. so far so good...
i then want the editUserForm to open up with the choosen users data in
the form, so i can edit it and submit it to update the database.
when i click on a user in the list i get the following error:

Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested
name or ordinal.
/VS_Files/updateUserForm.asp, line 19

i think i'm doing something wrong when i try to pass variables with a
querystring...but i'm not sure...
could really use some help...(this is all a part of my bachelors
project)

the code is included below.
i got 3 files to do the job: chooseUserToEdit.asp, updateUserForm.asp
& updateUser.asp

THANKS A LOT EVERYBODY !!!
------------------------------------------------------------------------
chooseUserToEdit.asp

<!--#Include File="Connect.asp" -->

<%
Set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = Con

SQLstring = "SELECT Pnr, FirstName, LastName FROM Accounts"
RS.Open SQLstring
%>

<html>
<body bgcolor="">

<center>
<table width="500" border=1 bgcolor=""
cellpadding="4" cellspacing="0">
<tr>
<td align="center" colspan="3" bgcolor="">
<font face="Arial" size="3"><b>
Choose user to edit
</b></font>
</td>
</tr>
<%
'loop through all available users & display them
WHILE NOT RS.EOF
%>
<tr>
<!--passes a querystring to updateUserForm.asp
matches href with right record -->

<td width="100"><a href="updateUserForm.asp?pid=<%=RS("Pnr")%>">
<%=RS("Pnr")%></a>
</td>
<td width="200"><%=RS("FirstName")%> </td>
<td><%=RS("LastName")%> </td>
</tr>
<%
RS.MoveNext
WEND
%>
<%
RS.Close
Con.Close
%>
</table>
</center>
</body>
</html>
--------------------------------------------------------------------
updateUserForm.asp

<!--#Include File="Connect.asp" -->

<%
'Get the user Pnr from chooseUserToEdit.asp (throuh the
querystring)

Pnumber = Request.Querystring("pid")

'Open the Recordset

Set RS = Server.CreateObject("ADODB.Recordset")
RS.ActiveConnection = Con

SQLstring = "SELECT * FROM Accounts WHERE Pnr = " & "'" & Pnumber &
"'"
RS.Open SQLstring

'store the record in local variables

IF NOT RS.EOF THEN
Pnr = RS(" Pnr ") //line 19
FirstName = RS(" FirstName ")
LastName = RS(" LastName ")
UserName = RS(" UserName ")
PassWord = RS(" PassWord ")
UserType = RS(" UserType ")
Company = RS(" Company ")
END IF
RS.Close

%>

<html>
<head><title>Update User</title></head>
<body bgcolor="">

<form method="post" action="updateUser.asp">

<center>
<table width="600" border=1 bgcolor=""
cellpadding="4" cellspacing="0">
<tr>
<td colspan="2" bgcolor="">
<font face="Arial" size="3"><b>
Edit User
</b></font>
</td>
</tr>
<tr>
<td>
<b> Pnr:</b>
</td>
<td>
<input name="Pnr" type="text"
size="20" maxlength="20"
value = "<%=Server.HTMLEncode(Pnr)%>">
</td>
</tr>
<tr>
<td>
<b>First name:</b>
</td>
<td>
<input name="FirstName" size="20" type="text"
value = "<%=Server.HTMLEncode(FirstName)%>">
</td>
</tr>
<tr>
<td>
<b>Last name:</b>
</td>
<td>
<input name="LastName" type="text"
size="20"
value = "<%=Server.HTMLEncode(LastName)%>">
</td>
</tr>
<tr>
<td>
<b>User name:</b>
</td>
<td>
<input name="UserName" type="text"
size="20"
value = "<%=Server.HTMLEncode(UserName)%>">
</td>
</tr>
<tr>
<td>
<b>Password:</b>
</td>
<td>
<input name="PassWord" type="text"
size="20" maxlength="20"
value = "<%=Server.HTMLEncode(PassWord)%>">
</td>
</tr>
<tr>
<td>
<b>User type:</b>
</td>
<td>
<input name="UserType" type="text"
size="20" maxlength="20"
value = "<%=Server.HTMLEncode(UserType)%>">
</td>
</tr>
<tr>
<td>
<b>Company:</b>
</td>
<td>
<input name="Company" type="text"
size="20" maxlength="20"
value = "<%=Server.HTMLEncode(Company)%>">
</td>
</tr>
<tr>
<td colspan=2 align="right">
<input type="submit" value="Add User">
</td>
</tr>
</table>
</center>

<input name="updateUser" type="hidden" value="1">
</form>

</body>
</html>
--------------------------------------------------------------------
updateUser.asp

<!--#Include File="Connect.asp" -->

<%

' Get the Form Variables
updateUser = TRIM( Request( "updateUser" ) )

Pnr = TRIM( Request( "Pnr" ) )
FirstName = TRIM( Request( "FirstName" ) )
LastName = TRIM( Request( "LastName" ) )
UserName = TRIM( Request( "UserName" ) )
PassWord = TRIM( Request( "PassWord" ) )
UserType = TRIM( Request( "UserType" ) )
Company = TRIM( Request( "Company" ) )


' Assign Default Values
IF Pnr = "" THEN
Pnr = "???"
END IF
IF FirstName = "" THEN
FirstName = "???"
END IF
IF LastName = "" THEN
LastName = "???"
END IF
IF UserName = "" THEN
UserName = "???"
END IF
IF PassWord = "" THEN
PassWord = "???"
END IF
IF UserType = "" THEN
UserType = "???"
END IF
IF Company = "" THEN
Company = "???"
END IF

%>
<html>
<head><title>Update Users</title></head>
<body bgcolor="gray">
<%
' Update User
IF updateUser <> "" THEN

sqlString = "UPDATE Accounts SET Pnr = ' " & Pnr & "'," & "'" &
FirstName & "'," &_
"'" & LastName & "'," & "'" & UserName & "'," & "'" &
PassWord & "'," &_
"'" & UserType & "'," & "'" & Company & "'" &_
"WHERE Pnr = " & "'" & Pnr & "'"


Con.Execute sqlString
%>
<center>
<table width="600" cellpadding="4"
cellspacing="0" bgcolor="lightyellow">
<tr>
<td>
<%=FirstName%> was updated in the database
</td>
</tr>
</table>
</center>
<p>
<%
END IF
%>

<a href="updateUserForm.asp">Update User</a>

</body>
</html>
Ray at <%=sLocation%
9/30/2003 9:09:12 PM
It seems my reply vanished, so if I'm double posting, sorry.

Do you column names really have a space at the beginning and the end?

[quoted text, click to view]


Try RS("Pnr")
Or better yet, RS.Fields.Item(0).Value

Ray at home

AddThis Social Bookmark Button