Hej. Lite enklare Datum är svenska så det är nog inga problem.Uppdatera databas
Jag försöker uppdatera en access databas men det händer inget.
Har en tabell med två kolumner.
DATUM datatyp = datum/tid
HITS datatyp = tal
så här ser koden ut.
Är jag helt ute och cyklar ??
/Micke
Dim cnnDB, strQuery, rs, strUppdate
Set cnnDB = Server.CreateObject("ADODB.Connection")
cnnDB.Open "SKIERS"
strQuery = "SELECT * FROM DAG_HIT"
Set rs = cnnDB.Execute(strQuery)
IF NOT rs.EOF THEN
Do While Not rs.EOF
IF date = rs("DATUM") then
strUppdate = "UPDATE DAG_HIT SET HITS=" & "'" & rs("HITS")+1 & "'" & "WHERE DATUM=" & date
Set rs = cnnDB.Execute(strUppdate)
exit do
END IF
rs.MoveNext
Loop
END IF
cnnDB.Close
Set cnnDB = Nothing
Set rs = NothingSv: Uppdatera databas
<code>
Dim cnnDB, rs, strUppdate
Set cnnDB = Server.CreateObject("ADODB.Connection")
cnnDB.Open "SKIERS"
strUppdate = "UPDATE DAG_HIT SET HITS=HITS + 1 WHERE DATUM=" & date
Set rs = cnnDB.Execute(strUppdate)
cnnDB.Close
Set cnnDB = Nothing
Set rs = Nothing
</code>
Använd helst inte Datum som fältnamn. Datum är ett reserverat ord och ibland kan det bli fel. Använd tex Datumet, eller DagesDatum eller liknande
/JanneSv: Uppdatera databas
Därenot blev jag lite ororlig att du bara skrev datumet i where satsen.
Låt oss hus sqlmototn tolkar ett amerikanskt resp. svenskt datum
... WHERE FältNamn = 2002-01-01
Det tolkas som 2002 - 1 - 1 vilket ger
... WHERE FältNamn = 2000
Samma sak gäller amerikanskt.
... WHERE FältNamn = 1/1/2002
Fast i detta fallet tolkas det som divesion 1 / 1 / 2002
Beroende på om det är acces, ms sql-server eller någon annan hateras datum olika. Men jag rekomenderar att du använder dig av amerikanskt. Har för mig att den kan tolkas av flest sql tolkar.
Om du använder någon anan databas än acces så kan du ersätta # med ' så bör den fungera.
<code>
'Access variant
Function SQLDate(Value)
If IsDate(Value) Then
SQLDate = "#" & Month(Value) & "/" & Day(Value) & "/" Year(Value) & "#"
Else
SQLDate = "Null"
End If
End function
Dim cnnDB, strUppdate
Set cnnDB = Server.CreateObject("ADODB.Connection")
cnnDB.Open "SKIERS"
strUppdate = "UPDATE DAG_HIT SET HITS = HITS + 1 WHERE DATUM=" & SQLDate(date)
cnnDB.Execute strUppdate
cnnDB.Close
Set cnnDB = Nothing
</code>