Tekstvak > 255 karakters

Status
Niet open voor verdere reacties.

john64

Gebruiker
Lid geworden
12 jun 2011
Berichten
268
Goedemiddag,

In mijn database heb ik tabel met een aantal velden gedefinieerd als memoveld.
Op basis van deze tabel wordt een formulier gemaakt en daar kan ik in het memoveld naar willekeur een tekst invullen, zo groot als ik wil.

Tot zover geen probleem.
Een van de memovelden betreft een onderwerp van een certificering.
Nu wil ik een certificaat genereren die gegevens van verschillende tabellen bij elkaar veegt. Een certificaat is gebaseerd op verschillende certificeringen en elke certificering heeft een onderwerp. Het is van te voren niet bekend uit hoeveel certificeringen een certificaat bestaat (kan 1 zijn, maar ook bijv. 3 of 4)
Op het certificaat moet een opsomming geprint worden van alle onderwerpen van de onderliggende certificeringen.
Code:
txtOnderwerp = ""
do until rst.EOF
   ......
   txtOnderwerp = rst!OnderwerpCerticering
   ....
loop

rst is de recordset waarin de diverse certificeringen zitten. OnderwerpCertificering is het memoveld in de tabel.
Uiteindelijk moet in het formulier waarin het certificaat getoond wordt in een tekstvak het totale onderwerp van de certificering getoond worden (txtOnderwerp dus)
Tot zover geen probleem als de totale txtOnderwerp kleiner blijft dan 255 karakters

Maar ja, de tekst kan dus groter worden. En dan wordt de tekst afgekapt tot 255 karakters.

Zowel op het scherm als op het certificaat moet de volledige tekst getoond worden. Het certificaat maak ik door vanuit access een word-template te vullen mbv. VBA. Op diverse plaatsen in het word-template staan "bladwijzers" die ik kan vullen met gegevens uit de database. Dit gaat overal goed, behalve bij velden die groter worden dan 255 karakters (zoals in dit geval het onderwerp)

Hoe kan ik dit oplossen?

mvg
John
 
Ik snap niet wat je aan het doen bent; zodra je een memoveld omzet naar een string, raak je alle tekens boven de 255 kwijt. Je kunt het memoveld nog wel in zijn geheel gebruiken, maar je mag er geen manipulaties mee doen. Maar ja, dat zijn wij dus niet in je code.
 
Hallo Michel
Dank voor reactie

Ik bedoelde onderstaande code.

Code:
txtOnderwerp = ""
do until rst.EOF
   ......
   txtOnderwerp = txtOnderwerp & rst!OnderwerpCerticering
   ....
loop

txtOnderwerp wordt dus de verzamelde onderwerpen van de verschillende certificeringen.
Ik zie inderdaad dat alles boven 255 kar. wordt afgekapt (memo gedraagt zich dan dus als string).
Is er misschien een ander soort "longString", een tekst die meerdere teksten aan elkaar kan verwerken en tonen ?
Of is er een andere mogelijkheid om het samengestelde onderwerp in een tekstvak (of ander soort besturingselement) te tonen?
 
Aanvulling:
Het blijkt dat txtOnderwerp wel degelijk groter mag zijn dan 255 karakters, want bij sommige certificaten staat hier een tekst van ongeveer 430 karakters.
Alleen als het memoveld dat in de recordset zit (rst!OnderwerpCertificering) langer is dan 255 karakters , wordt deze eerst afgekapt tot 255 karakters en wordt dan achter txtOnderwerp aangeplakt.

Voor het resultaat txtOnderwerp is er blijkbaar geen grens in lengte.

Iemand hier een oplossing voor ?

mvg
John
 
Daar is geen oplossing voor. Memovelden in samengestelde strings gedragen zich als tekstveld met een lengte van 255 tekens. Je kunt hem dus wel in een variabele zetten, maar niet combineren.
 
ok, helder.

Ik heb inmiddels mijn formulier en de bijbehorende word-template aangepast zodat ik weer gebruik kan maken van de inhoud van de memo-velden, in een aantal losse besturingselementen, ipv 1 besturingselement met samengestelde tekst

dank voor meedenken

ik zal topic sluiten

mvg
John
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan