Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: Haifeif am Juli 27, 2022, 09:59:25

Titel: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Haifeif am Juli 27, 2022, 09:59:25
Moin.

Ich habe eine Menge Source Code Blöcke, die ich katalogisieren und weiterverwendbar machen will.

Dazu verwende ich eine Access 365 Datenbank. Mein Problem ist, das theoretisch der Feldtyp <Langer Text> Gigabyte Platz haben sollte, aber wenn ich einen Source Code von mehr als 64 kB einfügen will, die oben stehende Fehlermeldung erhalte.

Recherchen ergaben, das wohl das Formular das Problem sei. (?) Tatsache ist, ich muss den Text in dem Feld nicht sehen oder gar bearbeiten. Ich muss ihn nur in die Tabelle eintragen und wieder auslesen können.

Hier enden jetzt meine Access Kenntnisse und ich bitte um Hilfe!

Vielen lieben Dank!
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: ebs17 am Juli 27, 2022, 12:40:58
ZitatSource Code von mehr als 64 kB
Wie viel Zeilen sind das so?

Mein erstes Ansinnen wäre, über ein Refactoring überschaubare und brauchbare Prozeduren zu erhalten. Zielmarke wären so maximal 40 Zeilen pro Prozedur/Funktion.
Das steigert die Wiederverwendbarkeit und nachfolgend dann auch die Verwaltbarkeit.

Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Haifeif am Juli 28, 2022, 10:59:13
Keine Chance, es sind zu viele Zeilen.

Aber warum tut Access nicht, was es soll? Ich möchte nicht wirklich (in erster Linie) meine Anwendung diskutieren - das kommt ggf. später.

Der Datentyp <Langer Text> wird von MICROSOFT wie folgt beschrieben:

Langer Text    Bei ACCDB-Dateien funktioniert das Feld "Langer Text" auf gleiche Weise wie das Feld "Memo" der älteren Versionen. Das heißt, dass bis zu etwa einem Gigabyte Text gespeichert werden kann, auch wenn Steuerelemente in Formularen und Berichten nur die ersten 64.000 Zeichen anzeigen können. Sie können Felder des Typs "Langer Text" für die Anzeige von Rich Text einrichten, der Formatierungen wie Fettschrift und Unterstreichung umfasst.

Und genau das tut nicht! Warum? Oder mache ich was falsch?

Gruß, Uwe
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: PhilS am Juli 28, 2022, 12:27:47
Zitat von: Haifeif am Juli 28, 2022, 10:59:13Und genau das tut nicht! Warum? Oder mache ich was falsch?
Was genau "tut nicht"? Du hattest doch ursprünglich geschrieben, dass du das Problem hast, wenn du den Text in der Benutzeroberfläche bearbeiten willst. - Das entspricht doch der Beschreibung aus deinem Zitat.

Um zu erkennen, ob du etwas falsch machst, oder nicht, müsste man erstmal wissen, was du genau machst.
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Haifeif am August 02, 2022, 20:18:15
Hallo, Phil.

Wie oben beschrieben, habe ich eine Datenbank erstellt, in der ich Codeblöcke (ASCII Text) speichern und katalogisieren will. In einer Tabelle habe ich dazu, wie oben beschrieben ein Feld als <Langer Text> angelegt, da dieser Feldtyp mehrere Gigabyte handeln können soll.

Füge ich nun ASCII Texte ein und es sind mehr als 64 kB, meldet ACCESS einen Fehler <Fehler: Der Text ist zu lang und kann nicht bearbeitet werden> und verweigert das einfügen.

Auf die Gefahr hin, mich zu wiederholen: Wie oben beschrieben ist das angeblich ein Fehler im Formular Teil von Access.

Brauchst Du sonst noch eine Info?

LG Uwe
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: ebs17 am August 02, 2022, 21:10:18
ZitatTatsache ist, ich muss den Text in dem Feld nicht sehen oder gar bearbeiten. Ich muss ihn nur in die Tabelle eintragen und wieder auslesen können.
Wie kommst Du auf den Fehler?
Sprich: Wie erzeugst Du den Zugriff auf den Code? Wie trägst Du ein?
Vom reinen Anschauen und Nachdenken wird noch keine Fehlermeldung erzeugt.
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: PhilS am August 03, 2022, 12:54:40
Zitat von: Haifeif am August 02, 2022, 20:18:15Füge ich nun ASCII Texte ein und es sind mehr als 64 kB, meldet ACCESS einen Fehler <Fehler: Der Text ist zu lang und kann nicht bearbeitet werden> und verweigert das einfügen.

Auf die Gefahr hin, mich zu wiederholen: Wie oben beschrieben ist das angeblich ein Fehler im Formular Teil von Access.
Du hast immer noch nicht klar beschrieben, wie du den Text einfügst. Ich vermute, du willst den langen Text per Copy&Paste in eine Textbox einfügen. - Wie wir nun alle wissen, geht das nicht.

Das ist aber kein Fehler. In der Spezifikation, die du auch selbst angeführt hast, steht doch dass maximal 64K Zeichen in einer Textbox bearbeitet werden können.

Alternativ, kannst du längere Texte aus einer Datei einlesen und direkt in die Tabelle schreiben.
Wenn du ein anderes UI-Control,z.B. ein Microsoft Form Textbox (bei den ActiveX-Controls) verwendest, kannst du darüber wahrscheinlich (ungetestet) auch längere Text über Copy&Paste einfügen.
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Haifeif am August 03, 2022, 17:05:08
Hallo zusammen.

Ja, ich füge den Text mit Copy + Paste ein. Die Texte sind JS Seitenbeschreibungen aus einem anderen System. Sie stehen nicht als eigenständige Dateien zu Verfügung, ich muss sie in einem anderen Programm markieren und kopieren.

Somit ändere ich meine Fragestellung: Wie füge ich den Inhalt der Zwischenablage in ein Feld mit dem Format <Langer Text> ein?

VBA?

Danke für Eure Anstrengungen bis hier hin,

LG Uwe
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Haifeif am August 03, 2022, 17:15:51
@PhilS: Habe in einem Deiner Beiträge folgendes gefunden:

DoCmd.GoToRecord acActiveDataObject,,acNewRec
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste

Das klingt ansatzweise gut. Aber wie stelle ich sicher, dass der Inhalt in das "richtige" Feld der Tabelle geschrieben wird?

LG Uwe
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: ebs17 am August 04, 2022, 09:47:54
Zitatlängere Texte aus einer Datei einlesen
Man könnte an der Stelle in eine leere Textdatei hineinkopieren. Die nimmt die Datenmenge klaglos auf.

Zum Schreiben in die Tabelle etwa:
Dim rs As DAO.Recordset
Set rs = CurrentDb.Openrecordset("Zieltabelle", dbOpenDynaset)
With rs
   .AddNew
   .Fields("Code") = ReadFile("X:\Irgendwo\DeineTextdatei.txt")
   ' weitere Felder
   .Update
   .Close
End With
ReadFile aus Beliebige Datei einlesen (https://vb-tec.de/readfile.htm)
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: PhilS am August 04, 2022, 10:44:31
Zitat von: Haifeif am August 03, 2022, 17:15:51@PhilS: Habe in einem Deiner Beiträge folgendes gefunden:

DoCmd.GoToRecord acActiveDataObject,,acNewRec
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste
Es fällt mir schwer zu glauben, dass ich diesen Code irgendwo gepostet habe, außer vielleicht als Zitat. - Der Grund ist genau deine Frage. Dieses DoCmd/RunCommand-Gerödel ist sehr unpräzise und hochgradig davon abhängig, dass der Benutzer genau das getan hat, was der Entwickler erwartet, ohne es prüfen zu können. Außerdem würde das auch das Problem nicht lösen, weil hier wieder von der konventionellen Access.Textbox blockiert wird.


Zitat von: Haifeif am August 03, 2022, 17:05:08Wie füge ich den Inhalt der Zwischenablage in ein Feld mit dem Format <Langer Text> ein?
Ich hatte doch dazu schon einen Vorschlag gemacht (Microsoft Forms Textbox). Gibt es damit ein Problem, oder hast du den Vorschlag nur überlesen?
Inzwischen habe ich diesen Ansatz auch mit bis zu 200k Zeichen ausprobiert. - Kein Problem.
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Haifeif am August 04, 2022, 13:03:28
PhilS, ich habe es gelesen, aber nicht richtig verstanden. Mir war nicht bewusst, dass ich ActiveX Controls statt der Access Komponenten verwenden kann. Mein Fehler ...

Ich versuche das, denn 200k reichen definitiv.

Danke, Uwe
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Haifeif am August 04, 2022, 13:13:00
PhilS,

perfekt! Das war die Lösung. Hat auf Anhieb so funktioniert, wie ich es brauche!

Vielen Dank für die Geduld!

LG Uwe
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Haifeif am August 04, 2022, 13:25:39
@ Admin: Sorry, aber wie / wo finde ich bitte

<Neuigkeiten: Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!>
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: PhilS am August 04, 2022, 13:37:12
Zitat von: Haifeif am August 04, 2022, 13:25:39<Neuigkeiten: Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!>
Sorry, der Button ist seit dem letzten Forumsupdate nicht mehr vorhanden.
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Haifeif am August 04, 2022, 13:51:34
Alles klar.

Danke.
Titel: Re: Der Text ist zu lang, um bearbeitet zu werden
Beitrag von: Beaker s.a. am August 04, 2022, 14:25:28
Hallo Philip,
Könnte man dann nicht auch einfach den Hinweis ändern oder
löschen?
Die Frage taucht ja öfter auf.

gruss ekkehard