Har just kommit på att jag inte kan ha WHERE id = " & session("id") lika med just id eftersom den verkar gå efter postens id i access kan jag göra nått så att den går efter fältet "kundnr" eftersom jag har flera tabeller med olika uppgifter och i varje tabell har jag just kundnr med i posterna så det borde ju funka så att den loopar fram efter kundnr istället för ID.
När jag loggar in så sätts den här Session("id") = recset("id")
kan man ändra så att den går efter kundnr.
Har just kommit på att jag inte kan ha WHERE id = " & session("id") lika med just id eftersom den verkar gå efter postens id i access kan jag göra nått så att den går efter fältet "kundnr" eftersom jag har flera tabeller med olika uppgifter och i varje tabell har jag just kundnr med i posterna så det borde ju funka så att den loopar fram efter kundnr istället för ID.
Möjligen är jag dum, men jag begriper inte vad du menar (beror kanske på dina 369 tecken i en och samma mening.). Vad är det du vill göra?
När jag loggar in på sidan så görs en kontroll först av anv & lösen. Sedan sätts Session("id") = recset("id") sedan kommer man till index sidan. Och där loopar jag fram lite uppgifter som finns sparade i en tabell. Men nu ser jag att om jag ska ta fram uppgifter från en annan tabell så kan det vara så att primärnyckeln i fältet ID är 4 och i en annan 8 och då får jag detta. Kan man ändra session id till att gå efter kundnr istället för i varje tabell eller Post så finns just kundnr med.
ADODB.Field error '80020009'
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.
/konto.asp, line 0
Kontroll.asp koden --------
<%
Function SQLText(Value)
If Len(Value) Then
SQLText = "'" & Replace(Value, "'", "''") & "'"
Else
SQLText = "Null"
End If
End Function
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("client987.mdb")
strSQL = "Select * from tbluppgifter where client = " & SQLText(Request.Form("client")) & " and password = " & SQLText(Request.Form("password"))
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open strSQL, Con
If not recset.eof then
Session("authentication") = "yes"
Session("id") = recset("id")
Response.Redirect "index.asp"
else
Index.asp sidans databaskod---------------
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("client987.mdb")
SQL = "SELECT * From tbluppgifter WHERE id = " & session("id")
Set RecSet = Connect.Execute(SQL)
%>
If not recset.eof then
Session("authentication") = "yes"
Session("[B]kundnr[/B] ") = recset("[B]kundnr[/B]")
Response.Redirect "index.asp"
Eller?
Nja, jag har gjort så här Session("kundnr ") = recset("id/B]") och så har jag ändrat batabas kopplingen men om jag försöker hämta data från en annan tabell så blir det stop. varför??
Om ID är olika i de olika tabellerna så är det inte så konstigt att det blir galet. Varför kallar du sessionsvariabeln kundnummer och ändå lagrar id i den? Varför inte lagra kundnumret i sessionen och använda den i SQL-frågan?
Jag förstår ingenting av vad problemet är, måste jag dock tillstå.
Om ID är olika i de olika tabellerna så är det inte så konstigt att det blir galet. Varför kallar du sessionsvariabeln kundnummer och ändå lagrar id i den? Varför inte lagra kundnumret i sessionen och använda den i SQL-frågan?
Jag förstår ingenting av vad problemet är, måste jag dock tillstå.
Ok, kan du visa hur sql frågan ska vara så att den letar efter kundnr istället för ID, Detta är ganska nytt område för mig.
Hmm, jag är dålig på att förklara men när jag har satt
Session("kundnr") = recset("id")
och loggar in och sedan lopar fram lite information från samma tabell där anv. & lösen ligger med
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("client987.mdb")
SQL = "SELECT * From tbluppgifter WHERE id = " & session("kundnr")
Set RecSet = Connect.Execute(SQL)
%>
SÅ funkar det utan problem. Men problemet kommer när jag försöker hämta information från en ANNAN tabell. Och det är i tabellen webbhotell och i den tabellen så har jag ett fält som heter kundnr och i det fältet ligger kundnr så jag skulle vilja gå efter kundnr istället för id.
SQL = "SELECT * From webbhotell WHERE kundnr = " & session("kundnr")
Så här blev det med ditt förslag, Jag ska testa det andra förslaget nu.
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/test.asp, line 24
24 >> Set RecSet = Connect.Execute(SQL)