Borde det inte typ ga att lagga if-sats i loopen?:
Do until rs.eof
'vet ej, men anvanda om det finns # i vardet....
If rs("textfalt") = "#" then
intKategori = + 1
End IF
'annat......
rs.movenext
loop
12 svar · 310 visningar · startad av Jesper T
Skulle behöva loopa in värden ifrån ett textfield i ett formulär.
Databasen ser ut som följer:
[red] strText | intKategori | intVarde
----------------------------------[/red]
När ett # kommer så skulle jag vilja att intKategori skall plussas på med 1. I exemplet nedan så läggs rad ett och två in under intKategori 1 och den tredje raden läggs in under intKategori 2 osv. Rader(Nya poster) separeras med ett asterix(*)
Textfältsvärde:
[blue]Här kommer en text|19*Här kommer en annan text|31*#Text igen|40 [/blue]
Är det någon som har en idé?
Borde det inte typ ga att lagga if-sats i loopen?:
Do until rs.eof
'vet ej, men anvanda om det finns # i vardet....
If rs("textfalt") = "#" then
intKategori = + 1
End IF
'annat......
rs.movenext
loop
Nja, nu har du väl fått detta om bakfoten. ;)
do until strIn = ""
sql = "insert into tabell " & _
"(strText, intVarde"
if instr(strIn, "#" then sql = ", intKategori) " else sql = ") "
sql = "values (" & _
"'"&left(strIn, inStr(strIn, "|") - 1)&"', " & _
""&mid(strIn, instr(strIn, "|"), instr(strIn, "*") - 1)&""
if instr(strIn, "#" then
sql = ", intKategori = intKategori + 1"
strIn = right(strIn, inStr(strIn, "#"))
else
sql = ")"
strIn = right(strIn, inStr(strIn, "*"))
end if
con.execute(sql),,128
loop
set con = nothing
Typ något sådant eller?
Tack, men...
Nu står det:Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
Om jag komentrar bort executen och skriver ut sql:en så står det:Invalid argument "mid" line 21--->
""&mid(strIn, instr(strIn, "|"), instr(strIn, "*") - 1)&""
Hela koden kommer här:
<%
strIn=request.form("loop")
Dim objConn,strSQL
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("links.mdb")
objConn.open
do until strIn = ""
sql = "insert into Trainexe " & _
"(sublink_name, sublink_sublinkID "
if instr(strIn, "#") then sql = ", sublink_linkID) " else sql = ") "
sql = "values (" & _
"'"&left(strIn, inStr(strIn, "|") - 1)&"', " & _
""&mid(strIn, instr(strIn, "|"), instr(strIn, "*") - 1)&""
if instr(strIn, "#") then
sql = ", sublink_linkID = sublink_linkID + 1"
strIn = right(strIn, inStr(strIn, "#"))
else
sql = ")"
strIn = right(strIn, inStr(strIn, "*"))
end if
objConn.Execute(sql),,128
loop
objConn.Close
set objConn=nothing
%>
:OO
Men finns det någon "|" i stringen då?
Ja.
Finns det något tecken framför "*"?
[red]mid(strIn, instr(strIn, "|"), instr(strIn, "*") [blue][b]- 1[/b][/blue])[/red]
Det jag lägger in i textfältet är detta:
Cykling, <15 km/h, allmänt, lugnt|4* Cykling, >30 km/h, tävling|16* Cykling, 15-20 km/h, långsam, lätt ansträngning|6* Cykling, 20-23 km/h, måttlig ansträngning|8* Cykling, 23-26 km/h, snabb, kraftig ansträngning|10* Cykling, BMX eller mountainbike|8.5* # Cykling, stilla, lätt ansträngning|5.5* Cykling, stilla, måttlig ansträngning|5.5* Cykling, stilla, mycket kraftig ansträngning|12.5
Jag får samma fel.
Ingen som vet? Jag fattar 0!
help!
Ser helknasigt ut tycker jag. Denna bit:
else
sql = ")"
strIn = right(strIn, inStr(strIn, "*"))
end if
Kan ju göra att du står med en sql som lyder:
sql = ")"
Inte riktigt rätt va?
Kanske ska vara:
sql = sql & ")"
Löser väl iofs inte ditt problem...
RED. samma fel genomgående ser det ut som.
Ja, det verkar vara rappakalja av det mesta här...