webForumDet fria alternativet

Loopa in värden i access

ASPur ASP

12 svar · 310 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

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é?

Medlem sedan dec. 20002 526 inlägg
#2

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
Medlem sedan nov. 20017 144 inlägg
#3

Nja, nu har du väl fått detta om bakfoten. ;)

Medlem sedan maj 2002560 inlägg
#4
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?

Medlem sedan nov. 20017 144 inlägg
#5

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

Medlem sedan maj 2002560 inlägg
#6

Men finns det någon "|" i stringen då?

Medlem sedan nov. 20017 144 inlägg
#7

Ja.

Medlem sedan maj 2002560 inlägg
#8

Finns det något tecken framför "*"?

[red]mid(strIn, instr(strIn, "|"), instr(strIn, "*") [blue][b]- 1[/b][/blue])[/red]
Medlem sedan nov. 20017 144 inlägg
#9

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.

Medlem sedan nov. 20017 144 inlägg
#10

Ingen som vet? Jag fattar 0!

Medlem sedan nov. 20017 144 inlägg
#11

help!

Medlem sedan mars 20015 287 inlägg
#12

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.

Medlem sedan nov. 20017 144 inlägg
#13

Ja, det verkar vara rappakalja av det mesta här...

133 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)