:e Hej!
Nu har jag filat vidare lite på koden....
Och den ser ut så här och gör det jag vill att den ska göra!
<%
Dim strSQL, objConn, objRS, strErr, sEnumber, strAdd
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=uppdragNu"
objConn.Open
strAdd = ""
strErr = ""
For each item in Request.Form("cnt")
sAmount = SQLSafe(Request.form("amount" & item))
sTaskId = SQLSafe(Request.form("TaskId"))
sEnumber = Request.Form("eNumber" & item)
if not objConn.Execute("SELECT 1 FROM tblExArticle WHERE eNumber='" & sEnumber & "'").EOF then
strSQL = "SELECT tblExArticle.eNumber, tblExArticle.articleName, tblExArticle.articleUnit, tblExPrice.articlePrice " &_
"FROM tblExArticle " &_
"INNER JOIN tblExPrice ON tblExArticle.eNumber = tblExPrice.eNumber " &_
"WHERE tblExArticle.eNumber = '" & sEnumber & "'"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn, 3, 1
sArticleName = objRS("articleName")
sArticleUnit = objRS("articleUnit")
curArticlePrice = objRS("articlePrice")
objRS.Close
Set objRS = Nothing
strSQL = "SELECT nextId " &_
"FROM tblNextId " &_
"WHERE table = 'tblMaterial'"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn, 3, 1
iNextId = Cint(objRS("NextId"))
objRS.Close
Set objRS = Nothing
'testvärden
sNote = "test"
strSQL = "INSERT INTO tblMaterial(Id, Modified, TaskId, ArtNr, ArtName, Amount, Unit, Price, [Note]) " &_
"VALUES(" & iNextId & ", Now(), " & sTaskId & ", '" & sEnumber & "', '" & sArticleName & "', " & sAmount & ", '" & sArticleUnit & "', " &_
"" & curArticlePrice & ", '" & sNote & "')"
objConn.execute strSQL,,128
strAdd = Request.Form("Enumber" & item) & "<br>"
iNextId = iNextId + 1
strSQL = "UPDATE tblNextId SET nextId = " & iNextId & " " &_
"WHERE Table = 'tblMaterial'"
objConn.Execute strSQL,, 128
else
strErr=strErr & Request.form("Enumber" & item) & "<br>"
end if
Next
if strErr <> "" then
Response.write "Följande E-nummer finns inte och lades inte till!: <br>"
Response.Write strErr & "<br>"
Response.Write "Följande artiklar lades till: <br>"
Response.Write strAdd & "<br>"
Else
Response.Write "Följande artiklar lades till: <br>"
Response.Write strAdd & "<br>"
end if
objConn.Close
Set objConn = Nothing
function SQLSafe(sText)
SQLSafe = replace(sText, "'", "''")
end function
%>
Ett problem kvarstår dock, jag får inte med mig
sAmount = SQLSafe(Request.form("amount" & item))
Från formuläret....
Koden från formuläret ser ut så här
<td width="65"><select name="amount<% =i %>" class="listmeny" id="amount<% =i %>">
<%
for i2 = 1 to 100
Response.Write "<option value=""" & i2 & """ "
If cstr(i2) = request("amount") then Response.Write "selected=""selected"""
Response.Write ">" & i2 & "</option>" & vbCrLf
next
%>
</select></td>
eftersom i var upptaget valde jag i2... tycker inte det ser så snyggt ut men det kanske kvittar...
Någon som har någon bra idé varför inte amount kommer med? Gissar att det handlar om att det är listmenyn som gör det
Vad tycker ni annars om lösningen, kanske inte helt optimal LarsG men efter förutsättningarna som jag har att jobba efter. Några direkta felaktigheter eller säkerhetsmissar? Kommentarer mottages tacksamt...
Mvh
Henrik