Office: (Office 2016) Bericht Zeilenumbruch in Textfeld

Helfe beim Thema Bericht Zeilenumbruch in Textfeld in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, gibt es irgendwie die Möglichkeit in einem mehrzeiligen Textfeld nur die erste Zeile nach einer bestimmten Anzahl Zeichen (idealerweise nach... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von edv-master, 15. November 2016.

  1. Bericht Zeilenumbruch in Textfeld


    Hallo,
    gibt es irgendwie die Möglichkeit in einem mehrzeiligen Textfeld nur die erste Zeile nach einer bestimmten Anzahl Zeichen (idealerweise nach einem bestimmten Maß) den Text zu "umbrechen".

    das Problem ist bei einer Adresse, die Post hat in der ersten Zeile einen Frankiervermerk.
    Leider sind die Adressen immer unterschiedlich lang (haben manchmal 3, 4 oder 5 Zeilen)

    Sieht also z.B. so aus (sind Daten die z.B. mit "=[Firmenname]" aus der berichtsabfrage geholt werden):
    Firmenname
    Vor- und Nachname
    Zusatztext
    Adresse
    PLZ und Ort

    Code:
    die erste Zeile sollte z.B. nach 20 Zeichen "umbrochen" werden - das Problem ist jedoch, das die erste Zeile manchmal der Firmenname, Vor-/Nachname oder Zusatz sein kann....

    Hier mal ein Bild, evtl. versteht man dann das Problem besser (die Roten Linien/Rechtecke im Adressfeldbereich dürfen nicht beschrieben werden):

    Bericht Zeilenumbruch in Textfeld [​IMG]


    PS: man kann leider auch keine Art Bild (weißes Viereck) oder so einfügen was man "umfließen" lassen würde (was Access ja so und so nicht kann), da das Post-Programm ein Bild erkennt

    Gruß und Danke
    Stefan

    :)
     
    edv-master, 15. November 2016
    #1
  2. Das alles im Steuerelement des Formulars zusammen zu setzen, halte ich für etwas umständlich und schlecht bearbeitbar.

    Ich würde die Zeichenverkettung in eine Abfrage vor das Formular verlagern.
    Oder - noch besser - in eine globale Prozedur, die in der Abfrage aufgerufen wird.
    Die ID des Datensatzes wird als Argument übergeben und das Ergebnis zurückgeliefert. In der Prozedur selbst wird die Verkettung vorgenommen und - in Abhängigkeit von den Längen und den enthaltenenen Leerzeichen - ein oder mehrere Zeilenumbrüche durchgeführt.
    Du willst ja, wenn die Länge > 20 ist, nicht genau bei 20 trennen, sondern beim Leerzeichen davor ...
     
    hcscherzer, 17. November 2016
    #2
  3. Hallo hcscherzer,

    steh im Moment etwas auf dem Schlauch, wie würdest du das lösen - blick im Moment nicht wirklich durch *frown.gif*
    Soweit check ichs: Du würdest die "fertige" Adresse bereits mit der Abfrage in den Bericht liefern (per VBA) - aber wie löse ich das in der Prozedur mit dem Zeilenumbruch....

    ...geil wäre es wenn man das irgendwie in einem Längenmaß trennen könnte - also bei z.B. 5 cm, aber das wird unmöglich sein....

    Gruß
    Stefan

    PS: Man...... warum muss bei der Post immer alles kompliziert sein???? - Das nerft echt *mad.gif*
     
    edv-master, 17. November 2016
    #3
  4. Bericht Zeilenumbruch in Textfeld

    5cm ist sehr schwierig, dazu müsste man den Zeichensatz und den gewählten Font berücksichtigen ... das ist in VB.Net zwar möglich aber nicht in VBA.

    Die Sache mit dem Umbruch geht ungefähr so: Code:
    Das ist jetzt mit heißer Feder, ungetestet und ich sehe mindestens zwei Dinge, die noch geprüft werden müssten (wenn das Leerzeichen hinter der Marke 'wo' liegt oder wenn überhaupt kein Leerzeichen vorkommt).
     
    hcscherzer, 17. November 2016
    #4
  5. hi hcscherzer,

    hmmm.... hab mal einfach deinen Code so genommen wie du ihn geschrieben hast....

    aus dem "Ursprungs-Text":
    Code:
    wird:
    Code:
    Problem ist vor allem wenn der Text ein Wort (also ohne Leerzeichen) ist (1. Zeile hier):
    Code:
    dann kommt das heraus:
    Code:
    Hab auch schon versucht einfach ein Rechteck über den Text zu legen - ist dann eben der Post Ihr Problem, wenn die so ein bescheuertes Adressfed möchten (muss der Postbote halt Rätselraten üben)
    ....der Druckertreiber an dem ich den Bericht sende erkennt dann aber das Rechteck als Bild (auch wenn es weiß ist) und sagt das an der Stelle (wo oben ja rot markiert ist) ein Bild (und auch ein Text - auch wenn hinter dem weißen Rechteck) ist und der "Brief" über die Post-Box nicht versendet werden kann....

    Wie bescheuert muss man eigentlich sein, ein Adressfeld so seltsam zu formen....????

    PS: Idalerweise sollte es so aussehen (Bei umbruch nach z.B. 18 Zeichen):
    Code:
     
    edv-master, 17. November 2016
    #5
  6. Man kann die Textbreite mit der Methode Report.TextWidth feststellen.
    Natürlich geht das auch direkt über API.
    Ich würde es vom Konzept so angehen:
    Erstelle ein Label für das Adressfeld mit den vorgesehenen Maßen.

    Nutze das Format Event, des Report Bereichs.
    Ich würde im Event direkt ein Recordset mit den Rohdaten öffnen und den Text erstellen und dem Label zuweisen. Label.caption = Text.

    Sollte nicht zu schwer sein, ansonsten gibts ja Helfer.

    Ach ja, die Methode liefert Twips. 567 Twips = 1 cm.
    LG Markus
     
    markusxy, 17. November 2016
    #7
  7. Bericht Zeilenumbruch in Textfeld

    Stimmt, ich trenne nach jedem Blank ... wie gesagt, "mit heißer Feder" ..
    Es muss ja der letzte Blank vor der Trennlänge genommen werden.

    Ersetze mal die Zeile Code:
    durch Code:
    Und die Angelegenheit dass das erste Leerzeichen erst hinter der Trennlänge ist, hatte ich schon erwähnt.
    Dass lässt sich (fast) nicht automatisieren, denn da muss man entweder eine Regel erfinden, wo getrennt wird oder (besser) von Hand trennen.
     
    hcscherzer, 17. November 2016
    #8
  8. Hallo edv-master,

    eine andere Möglichkeit wäre mit RegExp:
    Code:
    Der Funktionsaufruf wäre dann z. B. in der Form
    Code:
    Freundliche Grüße
    readonly
     
    readonly, 17. November 2016
    #9
  9. Hi readonly,

    super Hammer geil....

    ein klitzekleines Problem nur noch, wer trennt den Text mehrmals, glaub das kann ich nurso erklären das man es auch versteht:

    Code:
    auf die zweite Zeile kann man das nicht auch noch evtl. erweitern (wobei das mit meiner ersten Verbesserungs- / Fehlerbehebungsanfrage etwas in Konflikt stehen würde) - evtl. kann ich dann Textfeld noch weiter nach oben schieben - muss ich aber erst testen - denke aber das das geht das mein Textfeld ganz nach oben kann....

    ....wenns nicht geht oder nur sehr sehr schwierig ist diese beiden Dinge einzubauen lass ich es so, sollte so auch funktionieren - nehme das Textfeld in dieser Formatierung nur wenn auf den "E-PostBussiness"-Druckertreiber gedruckt wird....

    Gruß und Danke
    Stefan

    PS: Hatte bisher noch keiner ähnliche Probleme mit der "E-POSTBUSINESS BOX"?
     
    edv-master, 17. November 2016
    #10
  10. Hallo edv-master,

    nachfolgend erweiterter VBA-Funktion (Achtung, neuer Funktionsname):
    Code:
    Der Funktionsaufruf wäre dann z. B. in der Form
    Code:
    Freundliche Grüße
    readonly
     
  11. Hallo readonly,

    sau cool, funktioniert alles wie gewünscht, bist SUPER!!!!!
    DANKE!!!!

    Gruß
    Stefan
     
    edv-master, 18. November 2016
    #12
  12. Bericht Zeilenumbruch in Textfeld

    Hallo edv-master,

    mir ist aufgefallen, dass beim Aufruf der VBA-Funktion ErsteZeilenUmbrechen meines vorherigen Beitrags im Rückgabewert teilweise falsche Zeilenbrüche enthalten sein können. Statt richtig CR + LF konnte manchmal auch fälschlicherweise CR + CR + LF am Zeilenende vorkommen. Beim Anzeigen in Abfragen wirkt sich das nicht weiter aus, allerdings wenn mit diesen Daten weiter gearbeitet werden soll, oder bei Verwendung von Copy und Paste können diese fehlerhaften Zeilenumbrüche unerwartete Ergebnisse hervorbringen, z. B. zusätzliche Leerzeilen.

    Nachfolgend daher eine korrigierte Fassung der VBA-Funktion ErsteZeilenUmbrechen, bei der der Fehler behoben ist:
    Code:
     
Thema:

Bericht Zeilenumbruch in Textfeld

Die Seite wird geladen...
  1. Bericht Zeilenumbruch in Textfeld - Similar Threads - Bericht Zeilenumbruch Textfeld

  2. 2 Berichte in eine Excel-Datei exportieren

    in Microsoft Access Hilfe
    2 Berichte in eine Excel-Datei exportieren: Hallo, ich möchte gerne 2 Berichte per VBA in je ein Register einer Excel-Datei exportieren, die dabei erstellt werden soll. Mit dem Befehl "DoCmd.OutputTo acOutputReport, "Bericht1", acFormatXLS,...
  3. Access Berichte

    in Microsoft Access Hilfe
    Access Berichte: ich habe einen Bericht erstellt mit Datenbasis einer Abfrage. Nun möchte ich in einem Formular unter Verwendung eines Kombinationsfeldes einen Datensatz auswählen und diesen im Bericht ausgeben....
  4. Bericht Seiten (PDF) formatieren

    in Microsoft Access Hilfe
    Bericht Seiten (PDF) formatieren: Hallo, ich falle einmal am besten mit der Tür ins Haus. Ich habe mir eine DB erstellt mit den Daten zu Schiffen als Datensätze. Das Ziel ist es, zu jedem Schiff einen Datensatz als PDF auszugeben....
  5. Bericht mit optionalen Feldern

    in Microsoft Access Hilfe
    Bericht mit optionalen Feldern: Hallo Zusammen, in einem Bericht sollen bestimmte Felder nur auftauchen, wenn das Kontrollkästchen ResIncl im Eingabeformular frm_Einheitendaten_reg angehakt wurde. Bedingung: Das soll auch...
  6. DOMAnzahl in einem Bericht

    in Microsoft Access Hilfe
    DOMAnzahl in einem Bericht: Hey Ihr Lieben, kurze Frage zu dem Ausdruck "DOMAnzahl". Ich habe eine Abfrage erstellt. Spalte 1: Autos Spalte 2: Farbe (Rot, grün, gelb) Spalte 3: Dokumentationsdatum Auf dieser Basis...
  7. Bericht Steuerelementinhalt Kreuztabelle

    in Microsoft Access Hilfe
    Bericht Steuerelementinhalt Kreuztabelle: Hallo an alle, ich habe da mal eine Frage. Ich fülle einen Bericht über eine recht umfangreiche Kreuztabelle (Angestellte und deren Schulungen). Nun Muss ich die Angestellt auch Filtern können...
  8. Memofelder: Zeilenumbrüche kommen nicht im Bericht

    in Microsoft Access Hilfe
    Memofelder: Zeilenumbrüche kommen nicht im Bericht: Ich habe ein Memofeld in einer Tabelle (eigentlich mehrere, das hier geschilderte Problem ist bei allen gleich): Im zugehörigen Formular ist das Textfeld, welches an das Memofeld gebunden ist,...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden