museumml

Access 2013 Textfelder zusammenführen und verbunden bearbeiten

Hallo zusammen,
meine Museums-Datenbanken haben ihren Ursprung in Zeiten von DOS und dBase, als die Lösung für längere Texte darin bestand, diese in mehrere kurze Textfelder aufzuteilen. Ich weiss, dass ich meine 6 Textstrings =[MEMO1] & " ; " & [MEMO2] & " ; " & [MEMO3] & " ; " & [MEMO4] & " ; " & [MEMO5] & " ; " & [MEMO6] verbinden und im Formular in ein Sammelfeld ausgeben kann. Dies hilft z.B. für Suchzwecke.Jetzt möchte ich aber fragen,ob es auch eine Möglichkeit gibt, die Daten so in ein langes Textbearbeitungsfeld zu importieren. In meinem Formular würde dann nur noch dieses Feld anbieten anstelle der 6 alten Bearbeitunsfeld plus Anzeigefeld.
Kennt sich da jemand aus?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 224017

Url: https://administrator.de/forum/access-2013-textfelder-zusammenfuehren-und-verbunden-bearbeiten-224017.html

Ausgedruckt am: 13.05.2025 um 15:05 Uhr

Pjordorf
Pjordorf 08.12.2013 um 16:25:04 Uhr
Goto Top
Hallo,

Zitat von @MuseumML:
Dies hilft z.B. für Suchzwecke.
Das solltest du dir genauer ansehen was du für Suchenmöglichkeiten und geschwindigkeiten benötigst und ob du ganze Zeichenketten wirklich effektiver einsetzen kannst.

Jetzt möchte ich aber fragen,ob es auch eine Möglichkeit gibt, die Daten so in ein langes Textbearbeitungsfeld zu importieren.
Generell, Ja.

Kennt sich da jemand aus?
Womit?

Gruß,
Peter
colinardo
colinardo 08.12.2013 aktualisiert um 18:23:06 Uhr
Goto Top
Hallo,
warum machst du nicht eine entsprechende Abfrage die alle Memo-Felder in einer Spalte zusammenfasst, so wie hier erläutert:
http://www.techonthenet.com/access/queries/concatenate.php
Dann kannst du entweder diese Abfrage als Quelle für dein Formular verwenden oder am besten das ganze direkt in eine neue Tabelle wandeln, und schon hast du keine Probleme mehr.

Grüße Uwe
MuseumML
MuseumML 08.12.2013 um 20:43:18 Uhr
Goto Top
Hallo Peter,
danke für die Antwort. Lass michdas Ziel nochmals erklären: Ich hätte einfach gern die Daten von 6 Memos in ein Feld "langer Text" kopiert, damit ich dann in diesem Feld DatenEDITIUEREN editieren kann. Sicher gibt esin Access eine elegantere Lösung als copy/paste von 6 mal 7000 Einträgen.
Gruss,
MuseumML
Biber
Biber 09.12.2013, aktualisiert am 10.12.2013 um 19:37:22 Uhr
Goto Top
Moin MuseumML,

willkommen im Forum.

Wenn du in deiner Tabelle ein Feld "langerText" eingefügt hast hast, dann reicht doch ein
UPDATE Museumskrams 
set langerText = Rtrim(Memo1) & ";" & Rtrim(Memo2) & ";" & Rtrim(Memo3) & ";"  
                   &   Rtrim(Memo4) & ";" & Rtrim(Memo5) & ";"&  Rtrim(Memo6)   
where (1=1);

Falls mal das eine oder andere MEMOx-Feld auch leer sein kann, dann
UPDATE Museumskrams 
set langerText = IIf (len(Rtrim(Memo1)) > 0,  Rtrim(Memo1) & ";" ,"")  
                     & IIf (len(Rtrim(Memo2)) > 0,  Rtrim(Memo2) & ";" ,"")  
                     & IIf (len(Rtrim(Memo3)) > 0,  Rtrim(Memo3) & ";" ,"")  
                     & IIf (len(Rtrim(Memo4)) > 0,  Rtrim(Memo4) & ";" ,"")  
                     & IIf (len(Rtrim(Memo5)) > 0,  Rtrim(Memo5) & ";" ,"")  
                     & IIf (len(Rtrim(Memo6)) > 0,  Rtrim(Memo6) & ";" ,"")  
where (1=1);

Wo ist das Problem?

Grüße
Biber
MuseumML
MuseumML 10.12.2013 um 17:17:25 Uhr
Goto Top
Hallo Biber,
danke für den Tip. War es richtig, obige zweite Variante in den Textgenerator von Steuerelementinhalt des langen Textfeldes einzutrage? War mit Museumskrams der Name des neuen langen Feldes gemeint? All dies berücksichtigend kommt die Meldung "Syntax ist falsch". Bitte um Hilfe.
Grüsse
MuseumML
colinardo
colinardo 10.12.2013 aktualisiert um 17:40:09 Uhr
Goto Top
Hallo MusemsML
Zitat von @MuseumML:
War es richtig, obige zweite Variante in den Textgenerator von Steuerelementinhalt des langen Textfeldes
einzutrage?
Nein, du musst eine Abfrage erstellen, dann stellst du die Ansicht dieser auf SQL um

0271be4c54795df9f3a5d03a79ea92cc

fügst den SQL-Code von @Biber im erscheinenden Textbereich ein und passt den Tabellennamen hinter UPDATE, den neuen Spaltennamen hinter SET und die Feldnamen(Memo1,Memo2,etc) an deine verwendeten Spaltennamen an:
UPDATE DeinTabellennamen
SET deineNeueSpalte = IIf (len(Rtrim(Memo1)) > 0,  Rtrim(Memo1) & ";" ,"")  
                     & IIf (len(Rtrim(Memo2)) > 0,  Rtrim(Memo2) & ";" ,"")  
                     & IIf (len(Rtrim(Memo3)) > 0,  Rtrim(Memo3) & ";" ,"")  
                     & IIf (len(Rtrim(Memo4)) > 0,  Rtrim(Memo4) & ";" ,"")  
                     & IIf (len(Rtrim(Memo5)) > 0,  Rtrim(Memo5) & ";" ,"")  
                     & IIf (len(Rtrim(Memo6)) > 0,  Rtrim(Memo6) & ";" ,"")  
where (1=1);
Wenn alles richtig ist, klickst du oben in der Tab-Leiste auf Ausführen, dann wird deine Tabelle mit der neuen Spalte aktualisiert.

Grüße Uwe
Biber
Biber 10.12.2013, aktualisiert am 20.12.2013 um 15:22:07 Uhr
Goto Top
[OT] @colinardo

kaum bin ich mal kurz einen Cappuccino trinken, kommt eine Rückfrage.
Danke für's Einspringen!

Grüße
Biber
[/OT]
MuseumML
MuseumML 11.12.2013, aktualisiert am 20.12.2013 um 15:22:28 Uhr
Goto Top
Gallo UWE,

jetz habe ich also die Abfrage erstellt für die Tabelle Dessins:
UPDATE Dessins 
SET MemoLang = IIf (len(Rtrim(Memo1)) > 0,  Rtrim(Memo1) & ";" ,"")   
                     & IIf (len(Rtrim(Memo2)) > 0,  Rtrim(Memo2) & ";" ,"")   
                     & IIf (len(Rtrim(Memo3)) > 0,  Rtrim(Memo3) & ";" ,"")   
                     & IIf (len(Rtrim(Memo4)) > 0,  Rtrim(Memo4) & ";" ,"")   
                     & IIf (len(Rtrim(Memo5)) > 0,  Rtrim(Memo5) & ";" ,"")   
                     & IIf (len(Rtrim(Memo6)) > 0,  Rtrim(Memo6) & ";" ,"")   
where (1=1);
Bei Ausführen kommt die Meldung "Undefinierte Funktion Rtrim in Ausdruck"
-> Frust !

Gruss

Hans [MuseumML]
colinardo
colinardo 11.12.2013 aktualisiert um 10:58:05 Uhr
Goto Top
Zitat von @MuseumML:
Bei Ausführen kommt die Meldung "Undefinierte Funktion Rtrim in Ausdruck"
-> Frust !
Heißen deine Spalten in der Tabelle wirklich Memo1, Memo2,etc ?
Hier geht es bei einem Test problemlos.
Ansonsten schreib es mal ganz simpel ohne Funktionen so
UPDATE Dessins
set MemoLang = Memo1 & ";" & Memo2 & ";" & Memo3 & ";" & Memo4 & ";" & Memo5 & ";" & Memo6  
where (1=1);

--edit--
es könnte sich auch um diesen BUG handeln, der auch in neueren Versionen immer mal wieder auftritt:

Grüße Uwe
MuseumML
MuseumML 11.12.2013, aktualisiert am 20.12.2013 um 15:22:46 Uhr
Goto Top
Hallo Uwe,
Memo1-6 sind korrekt. Hingegen heisst das nee Feld richtig Memo_Lang. Läuft aber trotzdem nicht.
Habe es jetzt mit
UPDATE DESSINS SET [Memo_Lang] =[MEMO1] & " ; " & [MEMO2] & " ; " & [MEMO3] & " ; " & [MEMO4] & " ; " & [MEMO5] & " ; " & [MEMO6];
hingekriegt und bin ganz glücklich. 6 x 7607 Memos sind jetzt zusammengeführt.
Werde also auf Bug verifizieren.
Vielen Dank für die Super Unterstützung. Habe viel gelernt.
MuseumML