Sommige tekst is groter dan de maximale veldgrootte (255)

Status
Niet open voor verdere reacties.

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
528
Goede middag ontwikkelaars,

Probleempje in mijn database...


In mijn formulier "FormKlanten" heb ik twee velden. 1 met volgnummer en een 2de met een corresponderende tekst Nederlands- of Franstalig die moet geselecteerd worden.

Hoewel het veld in de TabelTekst een "MEMO" veld is wordt er in mijn formulier maar 255 karakters weergegeven.

Via het Forum heb ik een VBA-oplossing (gegeven door Octafish :thumb:) gevonden voor iemand met een gelijksoortig probleem.

Ik heb de aangeboden oplossing (code) in mijn database geplaatst, de nodige veldnamen veranderd en ik krijg een error.

error.jpg

en in de debugger licht volgende lijn lijn geel op : Me.Tekst = .Fields(0)
PHP:
Private Sub Tekst_AfterUpdate()
Dim strSQL As String

    strSQL = "SELECT Tekst FROM TabelTekst WHERE [Volgnummer] = '" & Me.Volgnummer & "'"
    With CurrentDb.OpenRecordset(strSQL)
        If .RecordCount = 1 Then
            Me.Tekst = .Fields(0)
        End If
        .Close
    End With

End Sub


Bestand in bijlage

Bekijk bijlage Brief naar klant Test - Copy.zip


Hoe kan ik het probleem van de veldgrootte oplossen?

Alvast bedankt

Greetz

Pascal
 
Laatst bewerkt:
Ik heb even naar je db gekeken, en ik snap niet wat je aan het doen bent. Dat is een beetje een probleem, want dan wordt helpen natuurlijk erg lastig. Wél zie ik dat je iets doet wat niet kan, en wat dus goed fout gaat :). Je hebt een memoveld [Tekst] in de tabel [TabelTekst]. In de tabel [TabelKlanten] zit óók een veld [Tekst], maar daar is het een tekstveld. Met dus een lengte van max 255 tekens. Daar krijg je met geen mogelijkheid meer tekens in. Wil je dat wel (persoonlijk raad ik dat ten zeerste af overigens) dan moet je ook van het veld [Tekst] in de tabel [TabelKlanten] een memoveld maken. Maar nogmaals: ik raad dat héél erg af, want je hebt al een tabel met die tekst. In [TabelKlanten] kun je dus volstaan met een numeriek veld waarin je het veld [TekstID] opneemt. Houdt je db ook gelijk 2 keer zo klein, want zo'n memoveld dupliceren is een behoorlijke aanslag op je db grootte.
 
Ik heb e.e.a. 'gerepareerd' zoals ik denk dat je het bedoelt; kijk maar eens of je er nu wat mee kunt.
 

Bijlagen

  • Brief naar klant Test.zip
    39,9 KB · Weergaven: 34
Octafish,

Het uiteindelijke hoofddoel is de volgende :

Er moeten een 5-tal verschillende standaardbrieven gemaakt worden (in word 5 NL + 5 FR) die een basistekst zullen hebben en dan een 40-tal verschillende redenen die moeten ingevuld worden. Hangt af van de reden waarom onze klant een bief krijgt. In het uiterste geval zullen er bv 5 redenen geselecteerd worden in de DB en dan ook geplaatst worden in de brief. In regel gaat het maar om 1 à 2 redenen per brief. Ook zijn er een 10-tal medewerkers die de brieven zullen opmaken. Mijn bedoeling was dus de volgende :
1 tabel met verschillende volgnummers (BV Volgnummer A01 = 1 document ontbreekt in het dossier)
1 tabel met teksten die die coresponderen met die volgnummers (per volgnummer 2 1 NL + 1 FR)
1 tabel met de medewerkers hun gegevens (voor de handtekening en de correspondentiegegevens)
1 tabel met de klanten
Het formulier zou dan als volgt opgebouwd worden : de velden met de gegevens van de klant, een selectieveld voor de medewerker die de brief zal tekenen, en dan een selectieveld voor het volgnummer met ook weer een nieuw selectieveld voor de NL tekst of FR tekst. (eigenlijk een systeem zoals postnummer - gemeente, postnummer word geselecteerd en in het volgende veld verschijnt de gemeente of de keuze uit verschillende gemeentes die gelinkt zijn aan dezelfde postcode, in Belgie kan dat)

Eens alle velden zijn ingevuld en/of geselecteerd zou ik dan een link leggen naar het word document die alle velden dan zou opnemen in de brief.

Ik weet ook dat ik niet voor iedere klant (ieder record) opnieuw de volledige tekst moet selecteren maar dat het volgnummer de link kan leggen naar de tekst in TabelTekst via een query.

Ik besef wel dat ik nog niet helemaal op de juiste manier bezig ben. Ik dacht met het systeem postcode - gemeente op de zelfde manier te werken voor volgnummer - tekst. Natuurlijk met het gevolg van de maximale veldgrote 255. De veel gegeven oplossing op het net was dan om mijn tekst in een memo veld te plaatsen.


Heb je eventueel een andere oplossing voor mijn hoofddoel dan zijn alle suggesties en tips welkom.

Het probleem uitleggen is precies wel makkelijker dan hier neer te schrijven.

Ik hoop dat je mij een beetje kan volgen.


Alvast bedankt

Greetz

Pascal
 
Octafish,

Je was me voor. Ik zal nu even gaan kijken wat je meegestuurd hebt.

Thanks
 
Samenvoegen met Word gaat je vermoed ik niet helpen; zodra je koppelingen gaat leggen (en met samenvoegen doe je dat) dan zit je, ook bij memovelden, aan de beperking van de 255 tekens vast. Je zult de tekst dan dus helemaal met VBA in Word moeten opbouwen. Kan wel, is best lastig. Ik snap eerlijk gezegd niet waarom er altijd gelijk naar Word wordt gegrepen; je kunt in Access prima rapporten maken met exact dezelfde layout als in Word, en dan zonder het geëmmer dat je nu hebt. Doe dat eerst, en kijk later dan of je er wel/niet mee uit de voeten kan.
 
Octafisch,

Dit is inderdaad al een heel grote stap in de goede richting, thanks.:thumb:

Je hebt ook de nodige VBA geschreven. Alsof het niks is :thumb:

Zoals ik al heb aangegeven in #5 bestaat de mogelijkheid dat er een tweede reden of in het uiterste (slechtste) geval 5 redenen zouden moeten kunnen geselecteerd worden in het zelfde record.

Is dit mogelijk?:confused:


Greetz

Pascal
 
Octafisch,

Inderdaad, rapporten lijkt mij ook veel beter, Ik maak voor mezelf ook al mijn brieven met een DB en rapporten.

Het hoeft volgens mij ook niet perse in word gemaakt worden. Ik kan een rapportensysteem wel verdedigen aan het commando.

Greetz
 
Michel,

even inbreken maar je zegt exact dezelfde lay-out als Word maar onlangs moest ik een bestaand contract aanpassen met "doorgehaalde" tekst en naar mijn mening kan Access geen tekst doorgehaald in een rapport opnemen.
Tekst verticaliseren is ook niet hetzelfde aangezien je tekst dan niet op zijn kop kunt zetten dacht ik.
Verder ook even meegeven dat wij indertijd een 33-tal gekoppelde Word documenten per bewoner hadden en dat het dus een heel tijdrovend gedoe was om die Word documenten telkens na elkaar te openen, af te printen en weer te sluiten en dat het karwei nu opgelost is in een paar minuten sinds alles in Access zelf als rapport is geïntegreerd.
 
@Johan: doorgehaalde tekst in een rapport of verticale tekst kun je, als dat echt moet, nog wel simuleren. OF dat de geïnvesteerde tijd waard is? Ik waag het te betwijfelen. Maar inderdaad, Access is geen tekstverwerker dus dat soort (licht onnozele in mijn ogen) technieken worden lastig. Maar daar heb je dan dus Word voor :).
 
Ja ik weet het maar als twee directiecomités van verschillende ziekenhuizen moeten overeenkomen (met behulp van advocaten) dan wordt er wel eens gemuggezifd omtrent bepaalde contracten en dan moet ik dat letter voor leter goedzetten, ook qua lay-out.
Kun je doorhalen en verticaliseren (met het begin van de zin onderaan) met VBA of zo instellen? Tekstvelden maken met daarboven lijnen lijkt me toch wel wat te veel geknutsel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan