Supportnet / Forum / Datenbanken
Stringlänge in ACCESS 2K die 2.
Frage
Hallo zusammen,
habe seit kurzem folgendes Problem in ACCESS:
Stringvariablen mit variabler Länge werden aus VBA( z.B. eine SQL-Anweisung für RecordSource) nur in einer Länge von 256 Byte an ACCESS übergeben. Weiß jemand Abhilfe ?
Antwort 1 von Teddy7
genauer gesagt 255.
Ja - das ist so ! string kann nicht länger als 255 Zeichen sein - das war auch schon immer so.
Braucht man mehr kann man es noch mit memo-Feld versuchen.
Wenn Du in einer SQL-Anweisung mehr Zeichen brauchst kannst Du m.E. nur versuchen die Abfrage zu splitten.
Gruß
Teddy
Ja - das ist so ! string kann nicht länger als 255 Zeichen sein - das war auch schon immer so.
Braucht man mehr kann man es noch mit memo-Feld versuchen.
Wenn Du in einer SQL-Anweisung mehr Zeichen brauchst kannst Du m.E. nur versuchen die Abfrage zu splitten.
Gruß
Teddy
Antwort 2 von seico_sid
ähm soweit ich mich an mein recht verstaubtes schulwissen erinnern kann können strings nur max 255 zeichen enthalten ,..
aber wofür braucht man so lange strings ?
texte die grösser sind hinterlegt man in files und referenziert die,.. andere sql auswertungen wie gruppierungen oder sortierungen kann man auch mit sql statements lösen
regards
<SID>
aber wofür braucht man so lange strings ?
texte die grösser sind hinterlegt man in files und referenziert die,.. andere sql auswertungen wie gruppierungen oder sortierungen kann man auch mit sql statements lösen
regards
<SID>
Antwort 3 von seico_sid
ach nochwas überprüf mal deine felddefinition in access,.. es gibt da 2 feldtypen "text" und "memo" text kann nur ne bestimmte anzahl von zeichen aufnehmen, memo allerdings mehr,...
regards
<SID>
regards
<SID>
Antwort 4 von strippe999
Dank erstmal für die antworten,
das sagt VBA:
"Ein Datentyp, der aus einer Folge von aufeinanderfolgenden Zeichen besteht, die die Zeichen an sich und nicht ihre numerischen Werte darstellen. Ein Datentyp String kann Buchstaben, Zahlen, Leerzeichen und Satzzeichen enthalten. Der Datentyp String kann Daten mit einer festen Länge im Bereich von 0 bis etwa 63.000 Zeichen aufnehmen sowie dynamische Zeichenfolgen mit einer Länge im Bereich von 0 bis ungefähr 2 Milliarden Zeichen. Das Typkennzeichen Dollarzeichen ($) repräsentiert in Visual Basic einen Wert vom Typ String."
Der Konstrukt sieht so aus:
Set AktFrm = Forms("lstExcelUebergabe")
AktFrm.SetFocus
. Filter zusammenbauen
.
.
.
AktFrm.RecordSource = cGesamtFilter
cGesamtfilter hat eine Länge von 481 Byte, es kommen im "RecordSource" aber nur 256 an !!!
Und das war nicht immer so.
das sagt VBA:
"Ein Datentyp, der aus einer Folge von aufeinanderfolgenden Zeichen besteht, die die Zeichen an sich und nicht ihre numerischen Werte darstellen. Ein Datentyp String kann Buchstaben, Zahlen, Leerzeichen und Satzzeichen enthalten. Der Datentyp String kann Daten mit einer festen Länge im Bereich von 0 bis etwa 63.000 Zeichen aufnehmen sowie dynamische Zeichenfolgen mit einer Länge im Bereich von 0 bis ungefähr 2 Milliarden Zeichen. Das Typkennzeichen Dollarzeichen ($) repräsentiert in Visual Basic einen Wert vom Typ String."
Der Konstrukt sieht so aus:
Set AktFrm = Forms("lstExcelUebergabe")
AktFrm.SetFocus
. Filter zusammenbauen
.
.
.
AktFrm.RecordSource = cGesamtFilter
cGesamtfilter hat eine Länge von 481 Byte, es kommen im "RecordSource" aber nur 256 an !!!
Und das war nicht immer so.
Antwort 5 von Teddy7
Das ist Visual Basic. Wir reden hier aber von Access.
Geh mal in die Entwurfsansicht einer Tabelle und such Dir ein Textfeld.
Klick in das Feld, wo die Feldlänge eingegeben werden kann.
Da steht eindeutig : MaxLänge = 255 !!!
Und das war schon immer so !
Und wenn die Feldlänge in einer Tabelle nicht > 255 sein kann dann liegt der Verdacht nahe, daß ein Recordsource der gleichen Beschränkung unterliegt.
Geh mal in die Entwurfsansicht einer Tabelle und such Dir ein Textfeld.
Klick in das Feld, wo die Feldlänge eingegeben werden kann.
Da steht eindeutig : MaxLänge = 255 !!!
Und das war schon immer so !
Und wenn die Feldlänge in einer Tabelle nicht > 255 sein kann dann liegt der Verdacht nahe, daß ein Recordsource der gleichen Beschränkung unterliegt.
Antwort 6 von seico_sid
teddy7 : ja da könnteste recht haben
die string variablen sind klar weiter gefächert aber irgendwo hängts an den feldtypen,..
wie gesagt memo knn ne lösung sein, müsste da nich auch das recordset seine max anpassen oder kann das nicht mehr verwalten....
Fortsetzung....
die string variablen sind klar weiter gefächert aber irgendwo hängts an den feldtypen,..
wie gesagt memo knn ne lösung sein, müsste da nich auch das recordset seine max anpassen oder kann das nicht mehr verwalten....
Fortsetzung....

