<%
' variabler
if Request.QueryString("logga") = "in" then
namn = Request.Form("namn")
los = Request.Form("los")
databas = Server.MapPath("um.mdb")
' öppnar databasen
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& databas
' Öppnar Tabellen
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM logga WHERE namn = '"& namn &"' and los = '" & los & "'"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
If RecSet.EOF then
response.write "Fel Användar namn lr Lösenord, försök igen"
Else
Session("anv") = RecSet("namn")
Session("inloggad") = "ja"
End if
RecSet.Update
RecSet.Close
Connect.Close
%>
</font><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"> Du är nu
inloggad du kan nu gå vidare... </font>
<%End If%>
Så får ja fel mess:
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
logga.asp, line 31
vad kan vara fel?
Ps rad 31 är:
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
<%
If Request.QueryString("logga") = "in" Then
namn = Trim(Request.Form("namn"))
los = Trim(Request.Form("los"))
databas = Server.MapPath("um.mdb")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& databas
Set RecSet = Connect.Execute("SELECT namn, los FROM logga WHERE namn = '" & namn & "' AND los = '" & los & "'")
If RecSet.EOF Then
Response.Write"Fel användarnamn eller lösenord!"
Else
Session("anv") = RecSet("namn")
Session("inloggad") = "ja"
Response.Write"Du är ni inloggad och kan gå vidare!<br><a href=sida.asp>Vidare</a>"
End If
RecSet Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>
Förresten, varför hade du en RecSet.Update i din kod?
<%
' variabler
if Request.QueryString("logga") = "in" then
namn = Request.Form("namn")
los = Request.Form("los")
databas = Server.MapPath("um.mdb")
' öppnar databasen
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& databas
' Öppnar Tabellen
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM logga WHERE namn = '"& namn &"' and los = '" & los & "'"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
If RecSet.EOF then
response.write "Fel Användar namn lr Lösenord, försök igen"
Else
Session("anv") = RecSet("namn")
Session("inloggad") = "ja"
fldcount = RecSet("antal") + 1
RecSet("antal") = fldcount
End if
RecSet.Update
RecSet.Close
Connect.Close
%>
När ja kör denna koden funkar det bra (eller nästan) för
Om ja kör
If RecSet.EOF then
response.write "Fel Användar namn lr Lösenord, försök igen"
Så ska juh ej
Else
Session("anv") = RecSet("namn")
Session("inloggad") = "ja"
fldcount = RecSet("antal") + 1
RecSet("antal") = fldcount
End if
köras om inte Det ä fel lösen eller Anv men om ja skriver fel och ska få fram "fel lösen bla bla" så blir det så här i stället:
ADODB.Recordset (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/logga.asp, line 46
Och det är för att ja försöker uppdatera en post väll? men den ska juh bara försöka uppdatera om ja har skrevit rätt adress eller ja har missat något?