<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\dmab\raknare.mdb"
SQLeller = "SELECT datum FROM raknare"
SET RS = Connection.Execute(SQLeller)
RS.MoveFirst
i=false
Do Until i=true If RS.EOF then
SQLStmt = "INSERT INTO raknare"
SQLStmt = SQLStmt & "(antal, datum)"
SQLStmt = SQLStmt & "VALUES('" & 1 & "','" & date & "')"
i=true
Elseif RS("datum") = date Then
SQLStmt = "UPDATE raknare SET antal = antal +1 WHERE datum = #" & date & "#"
i=true
End If
If i=true Then RS.MoveFirst
RS.MoveNext
Loop
Connection.Execute(SQLStmt)
%>
Om jag inte lägger in "If i=true Then RS.MoveFirst"
Så kommer den att klaga på att den har kommit till EOF. Men jag har ju endå
"Do Until i=true
If RS.EOF then"
Så man tycker att den borde loopa tills EOF. Men hmm? Nånn som kan fixa till koden så att den blir lite snyggare?
SET RS = Connection.Execute("UPDATE raknare SET antal = antal +1 WHERE datum = #" & date & "#")
SET RS = Connection.Execute("SELECT antal FROM raknare WHERE datum = #" & date & "#")
IF RS.EOF THEN
' Datumposten saknas. Lägg till den
SQLStmt = "INSERT INTO raknare"
SQLStmt = SQLStmt & "(antal, datum)"
SQLStmt = SQLStmt & "VALUES('" & 1 & "','" & date & "')"
Connection.Execute(SQLStmt)
END IF
För övrigt är detta en lösning som fungerar i en fleranvändarmiljö då den första uppdaten låser räknarposten. om man sedan vill använda räknaren som primär nyckel till en tabell kommer ingen annan kunna komma mellan med samma nyckel :)
___________
MattiasW
273 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e