Anzahl der Zeichen im Memo-Feld begrenzen!

Hi!
Villeicht eine blöde Frage, aber wie kann man beim Felddatentyp „memo“ die Anzahl der einzugebenden Zeichen im Feld auf eine bestimmte Größe begrenzen?
Ich habe das selbe Problem beim Felddatentyp „Zahl“! Wie schaffe ich es, dass in der Tabelle beispielsweise nicht mehr als 4 Stellen erlaubt sind? Muss da „long integer“ stehen mit irgendeinem Zusatz?
Besten Dank
Amir

So etwas kannst du in der Datenbank selbst nicht einstellen - nur im jeweiligen Eingabe-/Änderungsformular. (Z.B. im KeyPress-Ereignis).

Reinhard

Hallo,

Bei dem Memofeld knn ich dir auch nicht helfen,
aber bei der Zahl kannst du es mit einem Trick schaffen, das nur 4 Zahlen möglich sind:

In deinem (Zahlenfeld) gibst du (In der Entwurfsansicht) als Gültigkeitsregel „-1“ ein. Ggf solltest du auch noch eine Gültigkeitsmeldung eingeben, dann weiss man, was man Falsch gemacht hat.
Mit dieser Bedingung kann man nur positive Zahlen bis einschl. 9999 eingeben, also nicht mehr als 4 Stellen.
Wenn du bei 76 z.B. auch das Format 0076 haben willst, mußt du im Format „###0“ eingeben, dann wird mit führenden Nullen aufgefüllt.

bis dann,
Jan

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke!
Danke! coole Idee! Das mit dem Memo-Feld habe ich immernoch nicht herausgefunden! Echt blöd! Falls Du da noch ne Idee hast, dann her damit!
Schönen Gruß
Amir

In deinem (Zahlenfeld) gibst du (In der Entwurfsansicht) als
Gültigkeitsregel „-1“ ein. Ggf solltest du
auch noch eine Gültigkeitsmeldung eingeben, dann weiss man,
was man Falsch gemacht hat.
Mit dieser Bedingung kann man nur positive Zahlen bis einschl.
9999 eingeben, also nicht mehr als 4 Stellen.
Wenn du bei 76 z.B. auch das Format 0076 haben willst, mußt du
im Format „###0“ eingeben, dann wird mit führenden Nullen
aufgefüllt.

Hi!
Villeicht eine blöde Frage, aber wie kann man beim
Felddatentyp „memo“ die Anzahl der einzugebenden Zeichen im
Feld auf eine bestimmte Größe begrenzen?

Leider Nein Ein Memo Feld kann eifach bis zu irgendwie 65 000 Zeichen umfassen.
Alternative anstadt Memo nimmst du Text. ist hald einfach bis 255 zeichenbegrenzt. aber da kannst die grösse frei bestimmen

Ich habe das selbe Problem beim Felddatentyp „Zahl“! Wie
schaffe ich es, dass in der Tabelle beispielsweise nicht mehr
als 4 Stellen erlaubt sind? Muss da „long integer“ stehen mit
irgendeinem Zusatz?

das mit den Zahlen ist ja schon in einem andern Beitrag erläutert worden.
Alternative Anstelle „Long integer“ nimmst du Text. Hä warum Text ?? ganz eifach erfüllt denn genau gleichen Zweck wie „Long Intiger“ (ist allerdings nicht empfehlens wert wenn mit den Werten noch gerechnet werden soll).
dort kannst auf 4 Zeichen beschränken, und das eingabe Format auf Zahlen.

Besten Dank
Amir

P.S. in diesem Fall reicht Integer komplett da du eh nur Zahlen bist 1000 hast :smile:
hoffe ich konnte dir helfen

Hi,

Ich hab mir noch mal was zum Memofeld überlegt:
Wenn du es in einer Tabelle festlegen willst, dann ist es, wie schon gesagt, nicht möglich.
(Man könnte vielleicht eine Funktion zum zählen schreiben, aber die muß man dann noch irgendwie aufrufen… ich weiß aber nicht wie, es ist mir nicht gelungen)
Wenn du die Eingabe in ein Formular machst, und dann mit einem Button weitermachst, kannst du bei dem Button die Länge des Textes abfragen (mit Len(…)) und wenn es zuviele Zeichen sind, eine Reaktion programmieren.
Falls du keinen Button hast, könntest du dieselbe Funktion als Ereignisprozedur beim „Nach Aktualiesierung“ deines MemoFeldes machen.
Problem beim ganzen, es geht halt nur mit Formularen und VBA.
In der Tabelle direkt kann man wohl nichts machen…

Hier der Code, wahlweise beim Button_Click oder bei AfterUpdate

Private Sub MeinWeiterButton_Click()
//Oder Private Sub MeinMemoFeld_AfterUpdate()

Dim Eintragslänge As Integer
Eintragslänge = Len(Me.txtText)

if (Eintragslänge > 200) //nur 200 Zeichen
msgbox(„Das geht aber nun wirklich nicht!“)
endif

// noch andere Aktionen, z.B. Feld wieder löschen oder Text
// abschneiden…

End Sub

bis dann,
Jan

Danke! coole Idee! Das mit dem Memo-Feld habe ich immernoch
nicht herausgefunden! Echt blöd! Falls Du da noch ne Idee
hast, dann her damit!
Schönen Gruß
Amir

1 Like

Wenn du es in einer Tabelle festlegen willst, dann ist es, wie :schon gesagt, nicht möglich.
(Man könnte vielleicht eine Funktion zum zählen schreiben, aber :die muß man dann noch irgendwie aufrufen… ich weiß aber nicht :wie, es ist mir nicht gelungen)

Hallo.
Die obige Idee stammt von Jan und ist weiter unten gepostet. Hierzu folgendes : Du kannst die „Bei Änderung-“ (Change-) Eigenschaft benutzen, um eine Static-Variable hochzuzählen bis zu der von Dir gewünschten Maximallänge. Wenn diese erreicht ist, verläßt Du das Feld per GoToControl oder wie auch immer.
ABER : Du mußt sicherstellen, daß die Static-Variable immer dann, wenn das Memofeld fokussiert wird, die aktuelle Länge des Memofeldes als Initialwert bekommt. Außerdem (ich hab’s zwar nicht ausprobiert) wird wohl nicht die ganz tolle Performance zu erreichen sein. Mußt abwägen, was Dir an dieser Stelle wichtig ist.
Viel Erfolg
kw