TroxyMedlem sedan mars 20041 508 inlägg
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
@ndersMedlem sedan juni 200026 914 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
TroxyMedlem sedan mars 20041 508 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?
@ndersMedlem sedan juni 200026 914 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? ;)
TroxyMedlem sedan mars 20041 508 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.
solbulleMedlem sedan mars 20014 998 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"
TroxyMedlem sedan mars 20041 508 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 :)
@ndersMedlem sedan juni 200026 914 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
TroxyMedlem sedan mars 20041 508 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 =(
@ndersMedlem sedan juni 200026 914 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
TroxyMedlem sedan mars 20041 508 inlägg