Hej jag har denna koden för att spara mitt formulär:
If Request.Querystring("action")= "spara" Then
y = Request.Form("ar")
m = Request.Form("man")
d = Request.Form("dag")
If y = "" Or m = "" Or d = "" Then
dato = null
Else
dato = DateSerial(y, m, d)
End If
a = Request.Form("udar")
n = Request.Form("udman")
m = Request.Form("uddag")
If a = "" Or n = "" Or m = "" Then
udgaet = null
Else
udgaet = DateSerial(a, n, m)
End If
Navn = Fixa(Request.Form("navn"))
Dato = dato
Udgaet = udgaet
Betegnelse = Fixa(Request.Form("betegnelse"))
Afd = Fixa(Request.Form("afd"))
Kh = Fixa(Request.Form("kh"))
Af = Request.Form("af")
Rev = Request.Form("rev")
Conn.Execute("INSERT INTO dok(Navn,Dato,Udgaet,Betegnelse,Afd,Kh,Af,Rev) VALUES('" & Navn & "','" & Dato & "','" & Udgaet & "','" & Betegnelse & "','" & Afd & "','" & Len(Kh) & "','" & Af & "','" & Rev & "')")
Response.Redirect "admin.asp?do=inne"
End If
när dato och udgaet är toma, alltså utan input så kan jag inte spara formuläret utan får fel:
**Microsoft JET Database Engine error '80040e07'
Data type mismatch in criteria expression.
/teknisk/admin.asp, line 418**
Linje 418:
Conn.Execute("INSERT INTO dok(Navn,Dato,Udgaet,Betegnelse,Afd,Kh,Af,Rev) VALUES('" & Navn & "','" & Dato & "','" & Udgaet & "','" & Betegnelse & "','" & Afd & "','" & Len(Kh) & "','" & Af & "','" & Rev & "')")
Hur ska jag göra så jag fortfarande kan spara formuläret fast det endast är Navn som har någon input?
Förlåt men hur skal jag använda denna funktionen och var? eller räker det med att den ligger på sidan?! man måste väl kalla den? Databasen är inställd från början på att tillåta null värden i dessa fälten.
De två fälten stå på designvisnings läget i databasen till att vara "Dato og klokkes" på danska, vet inte vad det heter på svenska men det är väl något i stil med datum och klockslag.. ska jag kanske ta bort detta och göra dem till vanliga text fält också? för jag använder ju bara 2004-12-01 och det skriver användaren själv in via select boxar..
If Request.Querystring("action")= "spara" Then
y = Request.Form("ar")
m = Request.Form("man")
d = Request.Form("dag")
dato = y &"-"& m &"-"& d
a = Request.Form("udar")
n = Request.Form("udman")
m = Request.Form("uddag")
udgaet = a &"-"& n &"-"& m
Function MakeNull(ByVal str)
if not isdate(str) then str="null" else str="'"& str &"'"
MakeNull=str
End function
Navn = Fixa(Request.Form("navn"))
Betegnelse = Fixa(Request.Form("betegnelse"))
Afd = Fixa(Request.Form("afd"))
Kh = Fixa(Request.Form("kh"))
Af = Request.Form("af")
Rev = Request.Form("rev")
Conn.Execute("INSERT INTO dok(Navn,Dato,Udgaet,Betegnelse,Afd,Kh,Af,Rev) VALUES('" & Navn & "'," & MakeNull(Dato) & "," & MakeNull(Udgaet) & ",'" & Betegnelse & "','" & Afd & "','" & Len(Kh) & "','" & Af & "','" & Rev & "')")
Response.Redirect "admin.asp?do=inne"
End If
Vanligtvis så har du ju enkelfnuttar runt datum (om du inte har access 97) och nu får du in dem med funktionen i stället.
men när jag sparar med datum på båda alltså dato och udgaet så kommer inte dato med utan bara udgaet.. kanske ska göra en funktion till varje?
Sen provade jag hade göra om den man ändrar med också och det gick inte lika bra
If Request.Querystring("action") = "andrat" Then
y = Request.Form("ar")
m = Request.Form("man")
d = Request.Form("dag")
dato = y &"-"& m &"-"& d
a = Request.Form("udar")
n = Request.Form("udman")
m = Request.Form("uddag")
udgaet = a &"-"& n &"-"& m
Function MakeNull(ByVal str)
if not isdate(str) then str="null" else str="'"& str &"'"
MakeNull=str
End function
Navn = Fixa(Request.Form("navn"))
Betegnelse = Fixa(Request.Form("betegnelse"))
Afd = Fixa(Request.Form("afd"))
Kh = Fixa(Request.Form("kh"))
Af = Fixa(Request.Form("af"))
Rev = Fixa(Request.Form("rev"))
<!-- [blue]linje 444[/blue] --> Conn.execute("Update dok Set Navn='" & Navn & "', Dato='" & MakeNull(Dato) & "', Udgaet='" & MakeNull(Udgaet) & "', Betegnelse='" & Betegnelse & "', Afd='" & Afd & "', Kh='" & Len(Kh) & "',Af='" & Af & "', Rev='" & Rev & "' Where id = "& Request.Querystring("id"))
Response.Redirect "admin.asp?do=inne"
End If
Den kommer med fel:
Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression '''2000-1-13'''.
Det funkade utmärkt på "spara". Alltså göra en ny post. Men så fort jag ska ändra i en post t ex nu porvade jag att göra en post med endast udgaet datum, utan dato datum. och gick sen in för att ändra och skriva in ett datum så kom den med fel:
Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression '''2002-03-24'''.
/teknisk/admin.asp, line 450
Just nu har jag kod på både ändra och spara:
If Request.Querystring("action")= "spara" Then
y = Request.Form("ar")
m = Request.Form("man")
d = Request.Form("dag")
a = Request.Form("udar")
n = Request.Form("udman")
Z = Request.Form("uddag")
dato = y &"-"& right("0"& m, 2) &"-"& right("0"& d, 2)
udgaet = a &"-"& right("0"& n, 2) &"-"& right("0"& z, 2)
Function MakeNull(ByVal str)
if not isdate(str) then str="null" else str="'"& str &"'"
MakeNull=str
End function
Function MakeBull(ByVal str)
if not isdate(str) then str="null" else str="'"& str &"'"
MakeBull=str
End function
Navn = Fixa(Request.Form("navn"))
Betegnelse = Fixa(Request.Form("betegnelse"))
Afd = Fixa(Request.Form("afd"))
Kh = Fixa(Request.Form("kh"))
Af = Request.Form("af")
Rev = Request.Form("rev")
Conn.Execute("INSERT INTO dok(Navn,Dato,Udgaet,Betegnelse,Afd,Kh,Af,Rev) VALUES('" & Navn & "'," & MakeNull(Dato) & "," & MakeBull(Udgaet) & ",'" & Betegnelse & "','" & Afd & "','" & Len(Kh) & "','" & Af & "','" & Rev & "')")
Response.Redirect "admin.asp?do=inne"
End If
If Request.Querystring("action") = "andrat" Then
y = Request.Form("ar")
m = Request.Form("man")
d = Request.Form("dag")
a = Request.Form("udar")
n = Request.Form("udman")
z = Request.Form("uddag")
dato = y &"-"& right("0"& m, 2) &"-"& right("0"& d, 2)
udgaet = a &"-"& right("0"& n, 2) &"-"& right("0"& z, 2)
Function MakeNull(ByVal str)
if not isdate(str) then str="null" else str="'"& str &"'"
MakeNull=str
End function
Function MakeBull(ByVal str)
if not isdate(str) then str="null" else str="'"& str &"'"
MakeBull=str
End function
Navn = Fixa(Request.Form("navn"))
Betegnelse = Fixa(Request.Form("betegnelse"))
Afd = Fixa(Request.Form("afd"))
Kh = Fixa(Request.Form("kh"))
Af = Fixa(Request.Form("af"))
Rev = Fixa(Request.Form("rev"))
Conn.execute("Update dok Set Navn='" & Navn & "', Dato='" & MakeNull(Dato) & "', Udgaet='" & MakeBull(Udgaet) & "', Betegnelse='" & Betegnelse & "', Afd='" & Afd & "', Kh='" & Len(Kh) & "',Af='" & Af & "', Rev='" & Rev & "' Where id = "& Request.Querystring("id"))
Response.Redirect "admin.asp?do=inne"
1. du behöver inte ha två olika funktioner för samma sak. (det är det som är tanken med en funktion... )
2. du måste ta bort enkelfnuttarna där du har fun funktionen.
Dato="& MakeNull(Dato) &" och Udgaet=" & MakeNull(Dato) &"
3. lägg funktionen före dina ifsatser så behöver du inte ta in dem flera gånger.
y = Request.Form("ar")
m = Request.Form("man")
d = Request.Form("dag")
a = Request.Form("udar")
n = Request.Form("udman")
Z = Request.Form("uddag")
dato = y &"-"& right("0"& m, 2) &"-"& right("0"& d, 2)
udgaet = a &"-"& right("0"& n, 2) &"-"& right("0"& z, 2)
Function MakeNull(ByVal str)
if not isdate(str) then str="null" else str="'"& str &"'"
MakeNull=str
End function
Navn = Fixa(Request.Form("navn"))
Betegnelse = Fixa(Request.Form("betegnelse"))
Afd = Fixa(Request.Form("afd"))
Kh = Fixa(Request.Form("kh"))
Af = Request.Form("af")
Rev = Request.Form("rev")
If Request.Querystring("action")= "spara" Then
Conn.Execute("INSERT INTO dok(Navn,Dato,Udgaet,Betegnelse,Afd,Kh,Af,Rev) VALUES('" & Navn & "',"& MakeNull(Dato) &","& MakeNull(Udgaet) &",'"& Betegnelse &"','" & Afd & "','" & Len(Kh) & "','" & Af & "','" & Rev & "')"),,128
elseIf Request.Querystring("action") = "andrat" Then
Conn.execute("Update dok Set Navn='" & Navn & "', Dato=" & MakeNull(Dato) & ", Udgaet=" & MakeNull(Udgaet) & ", Betegnelse='" & Betegnelse & "', Afd='" & Afd & "', Kh='" & Len(Kh) & "',Af='" & Af & "', Rev='" & Rev & "' Where id = "& Request.Querystring("id")),,128
end if
Response.Redirect "admin.asp?do=inne"
HAHA Vackert! nu funkar det utmärkt på både spara och ändra
Kunde dock inte använda koden när den var sammanfogad både spara o ändra till en eftersom sidan är byggd så den bara öppnar en if sats i taget. men det gör inget för resten av siten är byggd på samma vis så då blir jag ju inte förvirrad nästa gång jag kommer över denna koden =)
En annan fråga.. jag har en sortering på sidan som jag gärna vill att man ska kunna komma tillbaka til om man t ex tar bort en post eller ändrar en. Den ser ut så här t ex:
hur hämtar jag detta när jag kör Response.Redirect? får inte rätt på det nämligen. så jag försökt men som inte funkar eftersom det är fel sätt att skriva det på är så här: