@ndersMedlem sedan juni 200032 967 inlägg
Calevan skrev:
jag vill ju inte bara ha värdet på "i" i SQL satsen utan även vilket fält det är som har det värdet, dvs i's namn. hur kan jag lösa det på annat sätt?
i ---> fältnamnet
request.form(i) ---> värdet
Vad hänger du inte med på?
- - - - -
Request.Form har inget med FSO att göra.
CCalevanMedlem sedan maj 20031 173 inlägg okey! jag såg någon liknande kod en gång och då hade det med FSO att göra, men jag ser ju nu att jag är ute och cyklar. nu fattar jag vad du menar! ska testa det.
Nexus86Medlem sedan okt. 20023 030 inlägg
@nders skrev:
i ---> fältnamnet
request.form(i) ---> värdet
Isåfall skiljer sig Request.Form från en vanlig array för om man kör For Each på en vanlig array får man:
i ---> värdet
Iaf i VB men borde ju vara samma i ASP kan man tycka. :)
SsolbulleMedlem sedan mars 20015 287 inlägg Nexus86:
När du loopar For Each i In Request.Form så är det alla formulärnamn som du får ut, inte värdena i själva formen.
Nexus86Medlem sedan okt. 20023 030 inläggOkej. Då ger jag mig. Visste inte att det betedde sig annorlunda. :)
Sry... Klippte in koden från en for loop där jag loopar ut namnet på fälten i ett recordset.
Men jag vill försvara mig med att jag faktiskt skrev att inget av kodexemplen var provade. ; P
CCalevanMedlem sedan maj 20031 173 inlägg såhär blev min kod tillslut. den fungerar så som jag ville ha det. ni är välkommna att testa. Tack till er som hjälpte till!
For Each i In Request.Form
If Trim(Request.Form(i)) >= "1" Then
sql = sql & " and "& i &" >= " ' om i innehåller data så bygger vi upp sqlsatsen med requestens namn
If IsNumeric(Trim(Request.Form(i))) Then ' om värdet är numeriskt
sql = sql & Trim(Request.Form(i)) '&"," ' formatera sqlfrågan för numeriska fält
'AccessDatabas
'ElseIf IsDate(Trim(Request.Form(i))) Then 'om värdet är av datum-tidtyp och databasen är access så "avkommenterar" du denna rad och raden under
'sql = sql & "#"&Trim(Request.Form(i))&"#," ' formatera sqlfrågan för fält av datumtyp
Else ' annars är det vanliga textfält
sql = sql & "'"&Trim(Request.Form(i))&"'," ' formatera sqlfrågan för textfält
End If
End If
Next
If Left(sql, 5) = " and " Then sql = Right(sql, (Len(sql) - 5)) ' ta bort det första "and" ur sqlsatsen, det vill vi inte ha där
sql = Left(sql, Len(sql) - 24) 'ta bort det sista "," det vill vi inte heller ha där. tar även bort submit grejen som skickas via formuläret
sql = Replace(sql, "1 >", " <")
sql = "SELECT * FROM wing WHERE "& sql & " ORDER BY id DESC"
Set RecSet = Connect.Execute(SQL)