Vi börjar med en fråga som kräver hela koden, så att någon vänlig skäl också får inblick nog att besvara fråga två.
Koden är till för att redan ändra en befintlig nyhetspost med id: <% intId %> av användaren <% = AnvId %>
Fråga 1) Av updatesatsen får jag felmeddelandet Typblandningsfel i villkorsutryck men jag ser inget fel.
Case "Nyhet"
Dim intId, strUpdRubrik, strUpdNyhet
intId = Request.QueryString("Id")
strUpdRubrik = Request.Form("F_Rubrik")
strUpdNyhet = Request.Form("F_Nyhet")
If Len(strUpdRubrik) = 0 Or Len(strUpdNyhet) = 0 Then
Response.Write "<div align='center'><font color='red'><b>Ett fel uppstod:</b> Fältet ''Rubrik eller ''Nyhet'' är tomt.</font><br><br><b><a href='JavaScript:history.go(-1);'>Tillbaka</a></b></div>"
End If
Connect.Execute("Update AgendaNyheter Set AnvId = '" & AnvId & "', Rubrik = '" & strUpdRubrik & "', Datum = #" & Now & "#, AgendaNyhet = '" & strUpdNyhet & "', Typ = 'Nyhet' Where Id = '" & intId & "';"),, 128
Response.Write "<div align='center'><font color='#009933'><b>Ändringar genomförda.</b></font><br><br><b><a href='administration.asp?AnvId=" & AnvId & "&Sida=Start'>Tillbaka</a></b></div>"
Fråga 2) Hur blir det egentligen med IF-satsen, kommer den även om IF-satsen uppfylls, alltså att rubrikfältet och/eller textfältet är tomt, genomföra Update-kommandot?
Borde jag kanske sätta den i Else enligt nedan?
If Len(strUpdRubrik) = 0 Or Len(strUpdNyhet) = 0 Then
Response.Write "<div align='center'><font color='red'><b>Ett fel uppstod:</b> Fältet ''Rubrik eller ''Nyhet'' är tomt.</font><br><br><b><a href='JavaScript:history.go(-1);'>Tillbaka</a></b></div>"
[B]Else[/B]
Connect.Execute("Update...
[B]End If[/B]
Vad har du för datatyp på anvID (just nu tolkas den som en sträng) och sen så skulle jag nog vilja se att datumet skulle skrivas så här
mittDatum = '#" & Now() & "#'
Sen så kanske det är några reserverade ord och ev. något mer fel i Sql-satsen som förekommer. Typ och Datum är jag osäker på ifall de är reserverade ord. (beror antagligen på vilken version av Access du kör).
Logiken i if-satsen ska väl funka.
Om b = 0 eller c = 0 då är något av fältet tomt. Annars kan du nog göra ungefär så här
Hittade felet, så här skulle det visst vara:
... Where Id = " & intId & ";
Alltså INTE Where Id = '" & intId & "';
Jag har en SQL-bok framför mig och där har de ett tal (10000000006) angivet inom fnuttarna, skall det inte vara det? Fast det står iofs inte vilken datatyp de har...
Det är datatypen på kolumnen som avgör fnuttar eller ej (text fnuttar. Numeriskt inga fnuttar.). Inte innehållet i värdet som skickas in. Du kan ju som bekant lagra 123456 i en kolumn av text-typ, men inte abcdef i en kolumn av numerisk typ.
Har inte använt Access på år och dar, läser dagligen i forum där folk missar # och lösningen just är #.
Det var inte dina # jag var skeptisk till utan din användning av både # och ' tillsammans. Skulle kunna fungera på senare varianter av access, men har aldrig sett kombinationen tidigare eller testat den.