I think your problem is in this line:

Recordset1.Source = "SELECT * FROM dbo.Users WHERE Password LIKE '%" + Replace(Recordset1__VarPassword, "'", "''") + "%'"

Why don't you use the same where clause in this select statement as the other script?

The above SQL statement will return the entire table. The reason it looks like your getting only the first record, is your only accessing the first record of the recordset. Trust me, the entire table is in that recordset. Instead of using like for this, use the firstname and password. Also, I would recommend using at least a rudimentary encryption technique. (of course, I don't know how important your project is.. if it's a school project, then probably don't worry about it.)

Also:

If Request.QueryString<>"" Then MM_LoginAction = MM_LoginAction + "?" + Request.QueryString

should be:

If Request.QueryString<>"" Then MM_LoginAction = MM_LoginAction & "?" & Request.QueryString

just to be safe...