Hoeveel karakters in een VBA veld

Status
Niet open voor verdere reacties.

test1000

Gebruiker
Lid geworden
7 jul 2017
Berichten
258
Hoi,

In VBA Access heb ik een veld gedefinieerd zoals
Code:
Dim TEKST as String

Dit veld wordt opgevuld door bewerkingen zoals
Code:
TEKST = TEKST + veld_1 + veld_2 + veld_3

Nu merk ik dat het veld TEKST niet alle karakters bevat.
Maw het veld is 'vol'.

In de tabel hebt je de optie Korte Tekst en Lange Tekst.
Maar op welke manier kan ik dit definiëren ?

Thx
 
Dat kan je alleen definiëren in het Tabelontwerp, niet in een code zoals je hem daar gebruikt. Overigens erg riskant om teksten samen te voegen met een +, maar dat is uiteraard geheel voor jouw rekening. Zelf doe ik dat maar in één specifiek geval.
Een tabel met Korte Tekst kan 255 tekens bevatten, een Memoveld (of Lange tekst) 65k+. Dus dat is effe wat meer :). Een (string)variabele kan dus heel wat meer tekst bevatten dan een tekstveld, dus om zeker te zijn dat het goed gaat, kun je de lengte van je 'berekend veld' erbij pakken als controle.
 
Kan je een string variable maken ?
Welke code ?

Ik kan niets vinden op internet.
Het is nu 00:36

Ben al bezig van vanmorgen 07:00

Dus heb al meer dan mijn best gedaan denk ik.
 
Toch niet alleen met deze vraag hoop ik :). Dit zijn de 'beperkingen' van een tekststring:
PHP:
String (variable-length)	10 bytes + string length	0 to approximately 2 billion
String (fixed-length)	Length of string	1 to approximately 65,400
Variant (with numbers)	16 bytes	Any numeric value up to the range of a Double
Variant (with characters)	22 bytes + string length (24 bytes on 64-bit systems)	Same range as for variable-length String
Je ziet: je komt met een variabele string net zo ver als met een Fixed-length string, want de maximale grootte daarvan is vergelijkbaar met een memoveld. Langer kan je tóch niet opslaan.
 
test1000,

Nog even een aanvulling.

Dim TEKST as String,

kan gegevens bevatten tot ongeveer 65000, waarschijnlijk wilde je dit zien in een msgbox, maar deze kan maar 255 tekens weergeven en is daar ook niet (helaas) voor gemaakt.

Weergeven doe je bv in een formulier waar in een tekstveld staat met gegevenstype lange tekst.

Gr. Cor
 
Het probleem met het bewaren van de meer dan 255 karakters is nu opgelost.
Maw als ik de tabel open en het veld "Veel_gegevens" bekijk zie ik meer dat 255 karakters.
De gegevens die het zijn.
Dit is al top.

Maar dan doe ik een export naar een .csv bestand en dan heb ik nog maar 255 karakters voor dit veld.
Ik gebruik de standaard code
Code:
DoCmd.TransferText acExportDelim, "Export_Tabel", "Q_Tabel", "c:\tabel.csv", True

Welke code moet ik gebruiken zodat een export van een veld meer dan 255 karakters ook in de .csv staan ?

Update:

Wanneer ik de tabel exporteer heb ik wel > 255 karakters in het veld.
Maar de export is op een query en dan niet.

Bestaat er een commando voor export query dat verschillende is van de tabel ?

Thx
 
Laatst bewerkt:
Ik heb een work-around zodat ik de query niet nodig heb.
Ik doe nu een export vanuit de tabel.
Maar deze moet gesorteerd worden maar is niet.

Deze code gebruik ik :
Code:
    DoCmd.OpenTable "TABEL"
    DoCmd.SelectObject acTable, "TABEL"
    DoCmd.SetOrderBy "[NR] ASC, [NAAM] DESC"
    DoCmd.Save
    DoCmd.Close acTable, "TABEL", acSaveYes

En in de tabel "TABEL" heb ik bij sorteren op : [NR] ASC, [NAAM] DESC staan maar de ASC verdwijnt al ik de tabel sluit.
Maar dit lijkt niet erg te zijn.
Wanneer ik nu de export uitvoer zijn de velden niet juist gesorteerd.
Wat is goed :
100 Z
100 A
110 Y
110 B

Maar wat krijg ik in het .CSV bestand :

100 Z
110 Y
100 A
100 B



Thx
 
Laatst bewerkt:
Ik heb een work-around zodat ik de query niet nodig heb. Ik doe nu een export vanuit de tabel.
Waarom de tabel gesorteer 'moet' worden is mij niet duidelijk, omdat je in het ontvangende bestand vast óók wel kan sorteren. Maar goed, ik snap eerlijk gezegd niet veel van je oplossing. (Ik snap de code uiteraard wel, maar niet het waaróm ;)).
Als ik een query wil exporteren via een tabel (en soms is dat inderdaad makkelijker) dan maak ik altijd een tijdelijke tabel aan. Kwestie van de te exporteren query omzetten naar een Tabelmaak query, en die uitvoeren. En dan de tijdelijke tabel exporteren. Die tijdelijke tabel krijgt de records in de sortering uit de query, dus je hoeft totaal niet te sorteren verder.
 
Klopt. Maar de ontvanger wil het .csv in de gevraagde sortering.
Had ook proberen aan te halen dat zij kunnen sorteren maar bleek niet zo eenvoudig te zijn.
Thx voor de workaround.
Heb het voor mekaar gekregen.

Ivm niet alle data in het veld. Bij een query export is het Excel limiet van 255 karakters voor een veld.
Vanuit tabel heb je het probleem niet. En controleer de inhoud vie Kladblok. Dan zie je alle karakters.
Wanneer je opent in Excel enkel de 255 karakters.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan