![]() |
|
|||||||
| Newsgroup microsoft.public.de.access Forum microsoft.public.de.access |
![]() |
|
|
Themen-Optionen | Ansicht |
|
#1
|
|||
|
|||
|
Hallo Profis,
ich brauche in einer Datenbank Textfelder, die wirklich rechtbündig eingegeben werden können (mit automatisch führenden Leerzeichen). Das brauche ich weil: 1. Die Datensätze sollten trotz der nicht-nummerischen Inhalts nummerische sortiert sein: 1 2 1A wie man sieht ist keine nummerische Eingabe möglich- 2. Es wurden tausende Datensätze importiert, die wirklich rechtbündig (mit vorlaufenden Leerstellen) erfasst wurden. Kennt hier jemand einen Weg, diese Form gleich bei der Eingabe zu verwirklichen? Bei Ausrichtung = rechtsbündig wird ja leider nur die Anzeige rechtbündig und nicht der Inhalt. Eine Korrektur über eine Änderungsabfrage wäre sehr umständlich und lästig. Gruß Franz |
|
|
||||
|
||||
|
|
|
#2
|
|||
|
|||
|
Hallo Franz,
Franz Zaufall schrieb: > 2. Es wurden tausende Datensätze importiert, die wirklich rechtbündig > (mit vorlaufenden Leerstellen) erfasst wurden. ich würde auf die ganze Formatierung verzichten und die bestehenden Daten korrigieren. Eine Aktualisierungsabfrage mit der Funktion Trim() sollte das Problem in weniger als 5 Minuten lösen. CU -- Thomas Homepage: www.Team-Moeller.de |
|
#3
|
|||
|
|||
|
Hallo Franz,
Franz Zaufall schrieb: > Hallo Profis, > > ich brauche in einer Datenbank Textfelder, die wirklich rechtbündig > eingegeben werden können (mit automatisch führenden Leerzeichen). > Das brauche ich weil: > 1. Die Datensätze sollten trotz der nicht-nummerischen Inhalts > nummerische sortiert sein: > 1 > 2 > 1A > wie man sieht ist keine nummerische Eingabe möglich- Schau Dir doch Mal die Sortierung nach Wert(DeinTextfeld) an, ob die Deinen Vorstellungen entspricht. (Val in VBA) > > 2. Es wurden tausende Datensätze importiert, die wirklich rechtbündig > (mit vorlaufenden Leerstellen) erfasst wurden. > > Kennt hier jemand einen Weg, diese Form gleich bei der Eingabe zu > verwirklichen? Bei Ausrichtung = rechtsbündig wird ja leider nur die > Anzeige rechtbündig und nicht der Inhalt. Eine Korrektur über eine > Änderungsabfrage wäre sehr umständlich und lästig. Dazu schau Mal bei Don Karl's FAQ 4.16; das könnte ein Ansatz für Dich sein. > > Gruß > Franz hth ekkehard |
|
#4
|
|||
|
|||
|
Hallo Franz,
> ich brauche in einer Datenbank Textfelder, die wirklich rechtbündig > eingegeben werden können (mit automatisch führenden Leerzeichen). > Das brauche ich weil: > 1. Die Datensätze sollten trotz der nicht-nummerischen Inhalts > nummerische sortiert sein: Kannst du das etwas genauer erklären? Ein Sortierung nach Zahlen ist halt nun mal numerisch, wenn auch Buchstaben vorkommen dann kann man nur alphabetisch sortieren > 1 > 2 > 1A > wie man sieht ist keine nummerische Eingabe möglich- Alphanumerissch halt. Aber wie möchtest du denn das sortiert haben? 1 / 1A / 2? oder so wie es da steht. > 2. Es wurden tausende Datensätze importiert, die wirklich rechtbündig > (mit vorlaufenden Leerstellen) erfasst wurden. Also die Datensätze stehen dann ja in der Tabelle, die Sortierung hat damit ja erst mal gar nichts zu tun und die führenden Leerzeichen auch nicht. Denn du möchtest ja nicht nach den Leerzeichen sortieren. > Kennt hier jemand einen Weg, diese Form gleich bei der Eingabe zu > verwirklichen? Bei Ausrichtung = rechtsbündig wird ja leider nur die > Anzeige rechtbündig und nicht der Inhalt. Inhalt und Anzeige sind zwei völlig verschiedene Sachen, die Sortierung eine dritte Sache die sich zwar auf die Anzeige auswirkt aber vor der Anzeige passiert. Und ob eine Reihenfolge der Sortierung rechts- oder linksbündig steht hängt nicht von der Reihenfolge ab. > Eine Korrektur über eine > Änderungsabfrage wäre sehr umständlich und lästig. Wie würdest du das Beispiel von oben denn korrigieren wollen? Und was soll das Ergebnis sein? Beschreibe doch kurz um was für Art der Daten es sich da handelt. Und wie du diese sortiert haben möchtest. Denn wie Thomas schon sagte, du kannst mit Trim die Leerzeichen entfernen, die Antwort auf die FAQ wird dir auch nicht wirklich helfen, da diese ja nur die Ausrichtung beschreibt aber nicht mit der Sortieren / Reihenfolge in der Anzeige zu tun hat. Gruß, Frank |
|
#5
|
|||
|
|||
|
Hallo Frank,
die importierten Daten stammen aus einem uralten DOS-Programm. Es geht dabei um eine Art Wohnungsabrechnung. Im Prinzip war schon damals das Programm auf Datenbanktechnik aufgebaut. Es gab eine Tabelle für die Häuser und eine verknüpfte Tabelle für die Wohnungen. Da die Wohnungen nicht nur aus Ziffern bestehen, z.B. 1A, 5-6, 10A-12, musste das Feld Wohnung ein Textfeld sein. Der Wunsch war aber, dass die Sortierung nicht alphabetisch, sondern nummerisch erfolgt. Dies ist bei Textfeldern nur dann möglich, wenn nicht nur die Ansicht, sondern auch die interne Speicherung rechtbündig erfolgt. Im nächsten Beispiel demonstriere ich den Unterschied (Leerstelle ist durch ~ dargestellt. falsche Sortierung richtige (gewünschte) Sortierung alphabetisch semi-alphanummerisch 1 ~~~~~1 1A ~~~~~2 10A-12 ~~~~1A 2 ~~~5-6 5-6 10A-12 Die importierten Daten sehen so aus wie das rechte Beispiel und sollen nicht geändert werden, weil: 1. Diese Sortierreihenfolge beibehalten werden soll. 2. Das ein indiziertes Verknüpfungsfeld ist und mit vielen anderen Tabellen in Beziehung steht. Um jetzt die komplizierte Eingabeform "space-space-space-space-1A" für "1A" zu wählen, suche ich nach einer Möglichkeit, dass vor-Leerstellen automatisch bei der Eingabe generiert werden. Frank Müller schrieb: > Hallo Franz, > >> ich brauche in einer Datenbank Textfelder, die wirklich rechtbündig >> eingegeben werden können (mit automatisch führenden Leerzeichen). >> Das brauche ich weil: >> 1. Die Datensätze sollten trotz der nicht-nummerischen Inhalts >> nummerische sortiert sein: > > Kannst du das etwas genauer erklären? > Ein Sortierung nach Zahlen ist halt nun mal numerisch, > wenn auch Buchstaben vorkommen dann kann man > nur alphabetisch sortieren !!! eben nicht, aber nur bei Rechtsbündigkeit. Du kannst dir dieses Beispiel auch sehr gut mit Hexadezimalzahlen (mit unterschiedlicher Stellenanzahl) vorstellen. Das funk nur richtig bei Rechtsbündigkeit und alphabetischer Sortierung. > >> 1 >> 2 >> 1A >> wie man sieht ist keine nummerische Eingabe möglich- > > Alphanumerissch halt. Aber wie möchtest du denn das > sortiert haben? 1 / 1A / 2? oder so wie es da steht. > >> 2. Es wurden tausende Datensätze importiert, die wirklich rechtbündig >> (mit vorlaufenden Leerstellen) erfasst wurden. > > Also die Datensätze stehen dann ja in der Tabelle, die Sortierung > hat damit ja erst mal gar nichts zu tun und die führenden > Leerzeichen auch nicht. Denn du möchtest ja nicht nach > den Leerzeichen sortieren. > >> Kennt hier jemand einen Weg, diese Form gleich bei der Eingabe zu >> verwirklichen? Bei Ausrichtung = rechtsbündig wird ja leider nur die >> Anzeige rechtbündig und nicht der Inhalt. > > Inhalt und Anzeige sind zwei völlig verschiedene Sachen, die Sortierung > eine dritte Sache die sich zwar auf die Anzeige auswirkt aber vor > der Anzeige passiert. Und ob eine Reihenfolge der Sortierung > rechts- oder linksbündig steht hängt nicht von der Reihenfolge ab. > >> Eine Korrektur über eine >> Änderungsabfrage wäre sehr umständlich und lästig. > > Wie würdest du das Beispiel von oben denn korrigieren wollen? > Und was soll das Ergebnis sein? > > Beschreibe doch kurz um was für Art der Daten es sich da handelt. > Und wie du diese sortiert haben möchtest. > > Denn wie Thomas schon sagte, du kannst mit Trim die Leerzeichen > entfernen, die Antwort auf die FAQ wird dir auch nicht wirklich > helfen, da diese ja nur die Ausrichtung beschreibt aber nicht > mit der Sortieren / Reihenfolge in der Anzeige zu tun hat. > > Gruß, > Frank > Gruß Franz |
|
#6
|
|||
|
|||
|
Hallo!
Franz Zaufall schrieb: [...] > falsche Sortierung richtige (gewünschte) Sortierung > alphabetisch semi-alphanummerisch > 1 ~~~~~1 > 1A ~~~~~2 > 10A-12 ~~~~1A > 2 ~~~5-6 > 5-6 10A-12 > > Die importierten Daten sehen so aus wie das rechte Beispiel und sollen > nicht geändert werden, weil: > 1. Diese Sortierreihenfolge beibehalten werden soll. > 2. Das ein indiziertes Verknüpfungsfeld ist und mit vielen anderen > Tabellen in Beziehung steht. > > Um jetzt die komplizierte Eingabeform "space-space-space-space-1A" für > "1A" zu wählen, suche ich nach einer Möglichkeit, dass vor-Leerstellen > automatisch bei der Eingabe generiert werden. select T.Datenfeld from Tabelle T order by Space(255-Len(T.Datenfeld & "")) & T.Datenfeld Falls "10A" vor "50" kommen soll, wäre eventuell so etwas möglich: select T.Datenfeld from Tabelle T order by Val(T.Datenfeld), T.Datenfeld mfg Josef -- EPT: (Access Error Prevention Table) http://access.joposol.com/ FAQ: (Access-FAQ von Karl Donaubauer) http://www.donkarl.com/ |
|
#7
|
|||
|
|||
|
Hallo Ekkehard
Ekkehard Böhme schrieb: > Hallo Franz, > > Franz Zaufall schrieb: >> Hallo Profis, >> >> ich brauche in einer Datenbank Textfelder, die wirklich rechtbündig >> eingegeben werden können (mit automatisch führenden Leerzeichen). >> Das brauche ich weil: >> 1. Die Datensätze sollten trotz der nicht-nummerischen Inhalts >> nummerische sortiert sein: >> 1 >> 2 >> 1A >> wie man sieht ist keine nummerische Eingabe möglich- > > Schau Dir doch Mal die Sortierung nach Wert(DeinTextfeld) an, ob die > Deinen Vorstellungen entspricht. (Val in VBA) Würde vermutlich das Sortierproblem lösen. Das betroffene Feld steht ist aber mir vor-Leerstellen importiert worden. Könnte natürlich über eine oder mehrere Aktualisierungsabfragen geändert werden, nur der Import findet regelmäßig, ca. 1-2mal pro Woche statt. Das würde bedeuten, dass jedes Mal nach einem neuen Import alle Tabellen, die ein solches Feld beinhalten geändert werden müssten - leider sehr umständlich. > >> >> 2. Es wurden tausende Datensätze importiert, die wirklich rechtbündig >> (mit vorlaufenden Leerstellen) erfasst wurden. >> >> Kennt hier jemand einen Weg, diese Form gleich bei der Eingabe zu >> verwirklichen? Bei Ausrichtung = rechtsbündig wird ja leider nur die >> Anzeige rechtbündig und nicht der Inhalt. Eine Korrektur über eine >> Änderungsabfrage wäre sehr umständlich und lästig. > > Dazu schau Mal bei Don Karl's FAQ 4.16; das könnte ein Ansatz für Dich > sein. Ja, das wäre ein super Ansatz - wenn das gleich bei der Erfassung der Daten für das entsprechende Feld stattfinden könnte wäre es super. Mit dieser Methode könnte ich zumindest die neu erfassten Daten mit einer Aktualisierungsabfrage auf den Stand der importierten Daten brinden, sodass zumindest die Beziehungen funktionieren. Toller wäre es natürlich gleich bei der Eingabe. Was doch uralte DOS-Programme alles konnten :-) > >> >> Gruß >> Franz > > hth > ekkehard Gruß Franz |
|
#8
|
|||
|
|||
|
Hallo Franz,
> Da die Wohnungen > nicht nur aus Ziffern bestehen, z.B. 1A, 5-6, 10A-12, musste das Feld > Wohnung ein Textfeld sein. Logisch. > falsche Sortierung richtige (gewünschte) Sortierung > alphabetisch semi-alphanummerisch > 1 ~~~~~1 > 1A ~~~~~2 > 10A-12 ~~~~1A Und welche Logik steckt hinter der richtigen (gewünschten) Sortierung? Warum kommt Wohnung 1A nach Wohnung 2? > Die importierten Daten sehen so aus wie das rechte Beispiel und sollen > nicht geändert werden, weil: > 1. Diese Sortierreihenfolge beibehalten werden soll. Siehe oben, welche Logik steckt denn da hinter der Reihenfolge. Das zweite Beispiel von Josef "10A" soll vor "50" kommen passt wohl nicht, denn dann würde ja "1A" auch vor "2" kommen. Und sein erster Vorschlag geht rein auf die Länge ein nach der sortiert wird. Da wären dann ja z.B. "1A", "2A", usw. gleichwertig. > Um jetzt die komplizierte Eingabeform "space-space-space-space-1A" für > "1A" zu wählen, suche ich nach einer Möglichkeit, dass vor-Leerstellen > automatisch bei der Eingabe generiert werden. Also bei der Eingabe in einem Formular kannst du ja die Länge des eingegebenen Textes vor dem Speichern mit Len() ermitteln und dann halt vorne auffüllen mit Leerzeichen. Also der umgekehrte Weg den Josef beschrieben hat mit seiner Berechnung von 225 runter auf die tatsächliche Länge. Aber wie gesagt, alles reine Spekulation, da ich deine gewünschte Reihenfolge noch nicht wirklich verstanden habe. Gruß, Frank |
|
#9
|
|||
|
|||
|
Hallo Franz,
Franz Zaufall schrieb: >>> ich brauche in einer Datenbank Textfelder, die wirklich rechtbündig >>> eingegeben werden können (mit automatisch führenden Leerzeichen). >>> Das brauche ich weil: >>> 1. Die Datensätze sollten trotz der nicht-nummerischen Inhalts >>> nummerische sortiert sein: >>> 1 >>> 2 >>> 1A >>> wie man sieht ist keine nummerische Eingabe möglich- >> >> Schau Dir doch Mal die Sortierung nach Wert(DeinTextfeld) an, ob die >> Deinen Vorstellungen entspricht. (Val in VBA) > Würde vermutlich das Sortierproblem lösen. > Das betroffene Feld steht ist aber mir vor-Leerstellen importiert > worden. Könnte natürlich über eine oder mehrere Aktualisierungsabfragen > geändert werden, nur der Import findet regelmäßig, ca. 1-2mal pro Woche > statt. Das würde bedeuten, dass jedes Mal nach einem neuen Import alle > Tabellen, die ein solches Feld beinhalten geändert werden müssten - > leider sehr umständlich. Du könntest natürlich auch dafür sorgen, dass direkt beim Import die überzähligen Leerzeichen entfernt werden. 1. Schritt: Datei mit zum importierenden Daten einbinden. 2. Schritt: Anfügeabfrage ausführen. In dieser Anfügeabfrage werden die überzähligen Leerzeichen mit der TRIM-Funktion eliminiert. HTH -- Thomas Homepage: www.Team-Moeller.de |
|
#10
|
|||
|
|||
|
Moin.
Also, ich muss gestehen, dass auch mir die oben beschriebene Logik in der Sortierreiehenfolge noch nicht ganz klar ist. Wie soll denn jetzt sortiert werden? Wie oben geschrieben? Dann musst Du Dir nen Sortieralgorithmus selbst programmieren, da ist nämlich keine Logik dahinter. Oder ich und noch ein paar Leser verstehen sie nicht. Willst Du "richtig" sortieren, dann geht kein Weg daran vorbei, führende Nullen zu verwenden. Zum Beispiel dann so: 01 01A 02 10A 50 Ansonsten funktioniert das mit dem Sortieren ja nicht wirklich richtig. Und da Du die daten sowieso importierst, kannst Du Dir die führenden Nullen ja beim Import schon anfügen lassen!?!? > Was doch uralte DOS-Programme alles konnten :-) Erstens behaupte ich mal ganz frech, dass die eigentliche Sortierung vom Programm hier realisiert wurde und Nichts mit irgendwelcher "echten" oder "unechter" Rechtsbündigkeit zu tun hat. Oder die "datenbankähnliche Speicherung" (Was ist das eigentlich? Gibt es ne Datenbank oder eher nicht???) konnte mit vorangestellten Leerzeichen arbeiten. Was ja heutige Datenbanken auch durchaus können. Nur würde niemand auf die Idee kommen, in einem Schlüsselfeld Leerzeichen zu verwenden. Und ob das dann wirklich "toll" ist, was das alte DOS- Programm da kann oder auch nicht, wage ich mal zu bezweifeln... ;o) BTW: Warum werden denn in regelmäßigen Abständen die Daten neu importiert??? Dient Dein Programm nur als Analysewerkzeug oder sowas? Gruss Thomas |
|
|
|
|
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| Textfelder in der Kopfzeile | Maria Gonzales | Newsgroup microsoft.public.de.german.office | 6 | 05-28-2009 09:15 AM |
| Rechtsbündiger Footer (rechtsbündige "Fußzeile") | traudel1964@web.de | Newsgroup microsoft.public.de.word | 3 | 01-10-2009 01:07 PM |
| Kopete 0.12.3 und rechtsbündige Schrift im Eingabefenster | Kevin Woost | Newsgroups de.sci.* Forum | 1 | 06-11-2008 06:13 AM |
| Rechtsbündige Quellenangabe | Klaus Gawol | Newsgroup de.comp.text.tex | 2 | 04-16-2008 10:05 AM |
| rechtsbündige Aufzählung | Anton Graph | Newsgroup de.comp.office-pakete.staroffice.writer | 12 | 12-10-2005 07:07 AM |