Troxy Medlem sedan mars 2004 1 505 inlägg Frågan 24 aug. 2004 17:29 #1 Jag vill uppdatera en post i en Access-databas. Egentligen ska det ligga ett filformulär som laddar upp en fil samtidigt också, (Därav valet av enctype), men det har jag inte fixat än, så än så länge är det bara uppdateringen av databasen som det är problem med, och problemet är att det helt enkelt blir tomt när jag uppdaterar. Inga felmeddelanden heller.
Formulär:
<form method="post" enctype="multipart/form-data" action="update.asp&id=<%=id%>">
Namn: <input type="text" name="namn"><br>
Info: <textarea name="info"></textarea><br>
<input type="submit" value="Skicka">
</form>
Update.asp:
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas.mdb")
Set Upload = Server.CreateObject("Persits.Upload")
int_ID = Request.Querystring("id")
str_Namn = Upload.Form("namn")
str_Info = Upload.Form("info")
SQL = "UPDATE bilder Set namn = '" & str_Namn & "', info = '" & str_Info & "' Where id = "& int_ID
Connection.Execute(SQL)
Response.redirect "index.asp"
Set Upload = Nothing
Connection.Close
Set Connection = Nothing
@nders Medlem sedan juni 2000 32 967 inlägg Om jag inte missminner mig måste man köra uploadobjektets metod Save innan man kan komma åt värden från formuläret.
Läs mer i manualen .
mvh
Troxy Medlem sedan mars 2004 1 505 inlägg Vad jobbigt, för säg om jag inte vill ladda upp en fil, utan bara skriva något, så går det ju inte, eller?
@nders Medlem sedan juni 2000 32 967 inlägg Jo, det ska gå alldeles utmärkt. Fast då sparas ju förstås ingen fil på servern heller, men det kanske du kan leva med? ;)
Troxy Medlem sedan mars 2004 1 505 inlägg @nders , hur menar du? Ska det fungera att göra som jag gör nu, dvs att spara in text i databasen utan att köra en upload först?
Dessutom har jag tänkt lägga till en if-sats som kollar om file-fältet är ifyllt eller ej. Om det är iflyllt, körs en upload, och är det tomt så körs ingen upload.
Men nu fungerar det inte att bara spara text i databasen...och man kan ju inte köra en upload på ett tomt file-fält.
S solbulle Medlem sedan mars 2001 5 287 inlägg Har du testat att lägga till "save"-raden och inga if-satser för att sen fylla i lite data i formen o sen "ladda upp". Med och utan en fil?
Typ:
Upload.Save "c:\upload"
Troxy Medlem sedan mars 2004 1 505 inlägg solbulle , det fungerar med upload, testade precis. Då fungerar det även att stoppa in texten i databasen.
Upload.form("namn") fungerar alltså bara efter man kört en upload.
Men hur ska jag göra om jag vill kunna lämna fil-fältet tomt, och ändå skriva texten? Det går ju inte att köra en upload på ett tomt file-fält va?
EDIT: Det gick att köra upload på ett tomt file-fält tydligen...hm, har precis för mig att jag fick error förut.
Weee, mitt problem är löst nu :)
@nders Medlem sedan juni 2000 32 967 inlägg
Troxy skrev:
EDIT: Det gick att köra upload på ett tomt file-fält tydligen
Som sagt. :)
Bra att du fick ihop det!
Mvh
Troxy Medlem sedan mars 2004 1 505 inlägg @nders , jepp, tack för hjälpen!
Nu har jag iof "accepterat som slutgiltigt svar" men det går kanske bra med en fråga till:
Hur kollar man med en IF-sats om ett file-fält är tomt??
If Upload.Files("file") <> "" then
...verkar inte fungera =(
@nders Medlem sedan juni 2000 32 967 inlägg Självklart får man ställa följdfrågor! :-)
Set File = Upload.Files("file")
If File Is Nothing Then
' Nä, ingen fil!
End If
Mvh