När jag försöker spara två svar på samma fråga (dynamiska,hämtas från tblFraga) kan jag inte spara tomma värden/svar. Ställ in i databasen att den tillåter nullvärde eller att ett standardvärde finns, alternativt så kollar du om värdet är tomt, är det de sätt in ett dummy värde i tabellen. Hej, Jo det hade att göra med om något fält var tomt i formuläret som jag skickade med POST och där värdet bara innehåller ett tal mellan 1 - 6.Uppdatera tabell med två värden på samma fråga
Användaren ska kunna svara med en siffra eller lämna tomt (tomma värden ska också sparas)
Värden som kommer från formuläret/input är:
Fråga 1
<input type="text" class="input_small" maxlength="1" name="1,0" >
<input type="text" class="input_small" maxlength="1" name="1,1" >
Fråga 2
<input type="text" class="input_small" maxlength="1" name="2,1" >
osv
-----------------------------------------------------------
Koden som ska spara till databasen:
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM tblSvar"
objRS.Open strSQL, Conn, 1,2,1
For x = 1 to Request.Form.Count
If (x/2) = Cint(x/2) Then
objRS("Bor") = Request.Form.Item(x)
Else
objRS.AddNew
objRS("RespID") = Session("pro1RID")
objRS("FragaID") = Cint(Left(Request.Form.Key(x),Len(Request.Form.Key(x))-2))
objRS("Nu") = Request.Form.Item(x)
objRS.Update
End if
Next
objRS.Close
Set objRS = NothingSv: Uppdatera tabell med två värden på samma fråga
//Anna-KarinSv: Uppdatera tabell med två värden på samma fråga
Du refererar till .Item(x) ? Skickar du med en array i url:en? Om du har problem där borde det i så fall stå Request.Form("x") - men jag vet inte om det är det som felar.
Om du har 0 som default i fälten och de är numeriska fält kan du skicka in null, dvs vbNull om du vill ha fältet tomt. Då skall din databas tolka detta och skriva en 0:a om du har det som default.
objRS("Nu") = vbNull
objRS.UpdateSv: Uppdatera tabell med två värden på samma fråga
Nu fungerar detta.... ser inte så snyggt ut men får i varje fall de värden jag behöver tilldatabasen.
Kommer någon på ett snyggare sätt så svara gärna ändå
Tack för hjälpen!
----- Denna kod fungerar tills vidare ----------------------------------------------
If Request.QueryString("save")="1" Then
Set objRS = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM tblSvar"
objRS.Open strSQL, Conn, 1,2,1
For x = 1 to Request.Form.Count
If Request.Form.Item(x) = "" Then
Varde = 0
Else
Varde = Cint(Request.Form.Item(x))
End if
If (x/2) = Cint(x/2) Then
objRS("Bor") = Varde
objRS.Update
Else
objRS.AddNew
objRS("RespID") = Session("pro1RID")
objRS("FragaID") = Cint(Left(Request.Form.Key(x),Len(Request.Form.Key(x))-2))
objRS("Nu") = Varde
End if
Next
objRS.Close
Set objRS = Nothing
End If