museumml
Goto Top

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?

Content-Key: 224017

Url: https://administrator.de/contentid/224017

Printed on: April 18, 2024 at 13:04 o'clock

Member: Pjordorf
Pjordorf Dec 08, 2013 at 15:25:04 (UTC)
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
Member: colinardo
colinardo Dec 08, 2013 updated at 17:23:06 (UTC)
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
Member: MuseumML
MuseumML Dec 08, 2013 at 19:43:18 (UTC)
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
Member: Biber
Biber Dec 09, 2013, updated at Dec 10, 2013 at 18:37:22 (UTC)
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
Member: MuseumML
MuseumML Dec 10, 2013 at 16:17:25 (UTC)
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
Member: colinardo
colinardo Dec 10, 2013 updated at 16:40:09 (UTC)
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
Member: Biber
Biber Dec 10, 2013, updated at Dec 20, 2013 at 14:22:07 (UTC)
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]
Member: MuseumML
MuseumML Dec 11, 2013, updated at Dec 20, 2013 at 14:22:28 (UTC)
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]
Member: colinardo
colinardo Dec 11, 2013 updated at 09:58:05 (UTC)
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
Member: MuseumML
MuseumML Dec 11, 2013, updated at Dec 20, 2013 at 14:22:46 (UTC)
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