Hej! Jag har dykt på ett mycket underligt problem ibland och det är när jag skriver en select-sats och det finns ett memofält och de inte är placerade sist i select-satsen, då kommer dess innehåll inte med.. Ditt tips hjälpte tyvärr inte, men tack iallafall. Konstigt att detta inte kan fungera. Jag får nöja mig med den enkla varianten att alltid visa ett visst antal tecken i början av strängen + länken. Annars hade jag inte tänkt att länken skulle skrivas ut om texten var kortare än en viss längd. Det är inte lika snyggt, men det fungerar. Tyvärr har PM den fula förmågan som du beskriver att den tömmer sig själv när man har använt den en gång, har ingen aning varför men så är det. Det fungerar klockrent med din "workaround". Tack för hjälpen Magnus. Jag har ett farslag inte testat det. Men det borde nog funka:Problem vid hämtning av fält med datatypen PM (Accessdatabas)
Är det någon som kan förklara för mig vad jag gör för fel i följande kod. När jag kollar längden på innehållet i fältet "Info" (av typen "PM") så verkar fältet tömmas på innehåll, jag får fram längden på fältinnehållet men i nästa steg av koden så skrivs inget ut..... Tar jag bort kontrollen på längden så kommer texten i fältet ut som det ska.
<code>
If len(trim(rst("Info"))) > 200 then
Response.Write "<tr><td align=left valign=top>" & left(replace(rst("Info"),vbCrLf,"<br>"),200) & "..." & "</td></tr>"
Response.Write "<tr><td align=left valign=top>Läs mer >></td></tr>"
Else
Response.Write "<tr><td align=left valign=top>" & replace(rst("Info"),vbCrLf,"<br>") & "</td></tr>"
End If
</code>
(Om jag gör samma sak med ett fält av typen "text" så fungerar det som det ska)
//FredrikSv: Problem vid hämtning av fält med datatypen PM (Accessdatabas)
Prova
Select a,b,c,d,memo from tabell
och se om det hjälper
/PelleSv: Problem vid hämtning av fält med datatypen PM (Accessdatabas)
//FredrikSv: Problem vid hämtning av fält med datatypen PM (Accessdatabas)
Lösningen på problemet blir att först läsa in den i en tempVariable och sedan göra allt med den variablen.
<code>
sTemp = trim(rst("Info"))
If len(sTemp) > 200 then
Response.Write "<tr><td align=left valign=top>" & left(replace(sTemp,vbCrLf,"<br>"),200) & "..." & "</td></tr>"
Response.Write "<tr><td align=left valign=top>Läs mer >></td></tr>"
Else
Response.Write "<tr><td align=left valign=top>" & replace(sTemp,vbCrLf,"<br>") & "</td></tr>"
End If
</code>
Gör du så kommer det fungerar precis som du vill ha det.
- MagnusSv: Problem vid hämtning av fält med datatypen PM (Accessdatabas)
//FredrikSv: Problem vid hämtning av fält med datatypen PM (Accessdatabas)
<code>
Dim fldId
Dim fldInfo
Set fldId = rst("ID")
Set fldInfo = rst("Info")
Do until rst.Eof
If fldInfo.ActualSize > 200 Then
Response.Write "<tr><td align=left valign=top>" & Replace(fldInfo.GetChunk(200), vbCrLf, "<br>") & "..." & "</td></tr>"
Response.Write "<tr><td align=left valign=top>Läs mer >></td></tr>"
Else
Response.Write "<tr><td align=left valign=top>" & Replace(fldInfo, vbCrLf, "<br>") & "</td></tr>"
End If
rst.MoveNext
Loop
</code>