Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Werner Mader am März 28, 2019, 19:31:09

Titel: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: Werner Mader am März 28, 2019, 19:31:09
Hallo liebes Forum ich brauche euer Wissen !

Ich habe eine bestehende Datenbank übernommen in welcher sich unter anderem ein Textfeld für die Eingabe der Adresse einer Person befindet. Das Textfeld beinhaltet die Postleitzahl, den Ortsnamen, ein Komma, den Straßennamen und die Hausnummer. Als Beispiel    9999 Musterort, Musterstrasse 99. Ich möchte das Eingabeformat so anpassen, dass vor dem Komma alles in Großbuchstaben (die Zahlen der PLZsollen dabei ignoriert werden) und nach dem Komma in Kleinbuchstaben (mit Ausnahme des ersten Buchstabens nach dem Komma) weitergeschrieben wird. Als Beispiel aus 9999 Musterort, Musterstrasse 99 soll 9999 MUSTERORT, Musterstrasse 99 werden. Das Problem liegt nun darin, dass die Standard Eingabeformate nicht funktionieren, da die Länge des Ortsnamens ja ständig variiert und zudem ist es ein einziges Textfeld und nicht unterteilt in 3 einzelne Felder (da wäre es ja viel einfacher). Wäre über Tipps wie das zu lösen ist sehr dankbar. mfG Werner
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: MzKlMu am März 28, 2019, 19:37:37
Hallo,
wenn Du es richtig machen willst, dann teilst Du Feld auf getrennte Felder auf, wie es in einer Datenbank sein sollte.
PLZ, Ort und Straße mit Hausnummer.
Das würde dann auch der 1.Normalform (atomare Inhalte) entsprechen.
Dann lässt sich auch Deine Anforderung ohne Eingabeformat problemlos realisieren.
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: Werner Mader am März 29, 2019, 08:55:20
Hallo Klaus!
Danke für deine Antwort.
Leider kann ich die Adresszeile nicht mehr aufteilen, das wäre zuviel Aufwand bei über 50 TSD Datensätzen und unzählichen Abfragen/Verknüpfungen. Mir wäre es auch lieber gewesen wenn ich es splitten könnte. Habe es leider so geerbt und ist in Betrieb seit 1996  ;). lG Werner
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: DF6GL am März 29, 2019, 13:41:21
Hallo,

welcher tiefere Sinn steckt hinter der geforderten Schreibweise?


Wie auch immer, ein Lösung könnte so aussehen:

In einem Formular mit Basis zur Tabelle werden 3 zusätzliche Felder ("txtPLZ", "txtOrt", "txtStrasse") hinzugefügt. Nach Eingabe der 3 Werte können diese mit einer VBA-Funktion entspr. der Vorgabe zu einem String zusammengefügt und dem eigentlichen Adressfeld zugewiesen werden.

Wenn diese "Änderung" für alle DS angewendet werden soll, ist eben die Funktion in einer Aktualisierungsabfrage einzubauen und anzuwenden.
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: PhilS am März 29, 2019, 13:59:03
Zitat von: Werner Mader am März 29, 2019, 08:55:20
Leider kann ich die Adresszeile nicht mehr aufteilen, das wäre zuviel Aufwand bei über 50 TSD Datensätzen und unzählichen Abfragen/Verknüpfungen.
Mit einer Aktualisierungsabfrage, einer neuen Auswahlabfrage als Abstraktionsebene und einem geeigneten Search&Replace-Tool, sollte das in weniger als 1 Std. machbar sein.
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: Werner Mader am März 29, 2019, 17:30:31
Der Lösungsansatz klingt plausibel, könntest du mir bitte aber das Search&Replace-Tool etwas näher erläutern.
Danke lG Werner
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: Maxel am März 29, 2019, 18:03:05
Mittels Instr() kannst Du das erste Komma lokalisieren und den Teil davor dann mittels Left(), Replace() und Ucase() in Großbuchstaben umwandeln. Zahlen werden davon natürlich nicht berührt.

ZitatMit einer Aktualisierungsabfrage, einer neuen Auswahlabfrage als Abstraktionsebene und einem geeigneten Search&Replace-Tool, sollte das in weniger als 1 Std. machbar sein.
Er schreibt allerdings von unzähligen Abfragen/Verknüpfungen...
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: jagger am März 29, 2019, 18:42:02
Hallo Maxel,

DF6GL (Antwort #3) schreibt:

ZitatIn einem Formular mit Basis zur Tabelle werden 3 zusätzliche Felder ("txtPLZ", "txtOrt", "txtStrasse") hinzugefügt. Nach Eingabe der 3 Werte können diese mit einer VBA-Funktion entspr. der Vorgabe zu einem String zusammengefügt und dem eigentlichen Adressfeld zugewiesen werden.

Es müssten also keine Abfragen geändert werden.

LG
jagger
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: Maxel am März 29, 2019, 19:13:07
@jagger

Mit
ZitatNach Eingabe der 3 Werte
bezieht sich Franz aber wohl auf das künftige Vorgehen.

Ich habe den TS so verstanden, dass er aus dem status quo eine Änderung der bereits vorhandenen Datensätze wünscht.


Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: jagger am März 29, 2019, 19:31:26
@Maxel,

...und ich hatte vermutet, dass es Fakt ist, dass das Textfeld wegen der vielen Abfragen, nicht geändert werden soll.
Na wie auch immer, Hauptsache Werner Mader kommt damit klar.

LG und ein schönes WE
jagger
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: Maxel am März 29, 2019, 19:47:44
Das Textfeld wird ja mittels UCase() nicht nachhaltig auf Abfragen und Verknüpfungen wirkend verändert, sofern Option Compare Database (Standard) gilt, sondern nur dessen optische Darstellung.

Auch Dir ein schönes WE!
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: MzKlMu am März 29, 2019, 20:19:37
Hallo,
man kann auch Stück für Stück nach den gezeigten Methoden von Philipp in #4 eine neue Tabelle anlegen mit den 3 neuen Feldern. Dann erstellt man eine Abfrage nimmt alle Felder (die alten und die neuen) auf. Speichert die Abfrage mit einem Namen und prüft. Wenn allse OK nennt man die alte Tabelle um und gibt der Abfrage mit den neuen Feldern den Namen der alten Tabelle.
In der neuen Abfrage legt man dann auch das zusammengesetzte Feld an, dem man den Feldnamen aus der alten Tabelle verpasst.
Dann sollte ohne weitere Änderungen der Rest der DB funktionieren.
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: Werner Mader am März 29, 2019, 22:00:01
Guten Abend und Danke für Eure Hilfe.
Ich habe die Lösung gefunden.

Der folgende Code wird einen professionellen VBA Programmierer wohl übelst zusetzen, aber es funktioniert.
Das Textfeld "Text15" habe zum probieren verwendet um zu sehen wie Access das umsetzt.

Code:
Refresh
Dim strAdresse As String
Dim strAdressere As String
    Dim intKommaPos As Integer
    Dim LowerCase, UpperCase
     
    intKommaPos = InStr(Wohnort & " ,", ",")
    strAdresse = Left(Wohnort, intKommaPos - 1)
    strAdressere = Right(Wohnort, Len(Wohnort) - InStrRev(Wohnort, ","))
    LowerCase = strAdresse
    UpperCase = UCase(LowerCase)
    Me.Text15 = UpperCase & "," & " " & strAdressere

So wird bei der Eingabe aus 9999 Testort, Teststrasse 5  als Ergebnis 9999 TESTORT, Teststrasse 5 produziert.
nochmals Danke für eure Überlegungen und Tipps.
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: PhilS am März 30, 2019, 17:15:58
Zitat von: Maxel am März 29, 2019, 18:03:05
ZitatMit einer Aktualisierungsabfrage, einer neuen Auswahlabfrage als Abstraktionsebene und einem geeigneten Search&Replace-Tool, sollte das in weniger als 1 Std. machbar sein.
Er schreibt allerdings von unzähligen Abfragen/Verknüpfungen...
Deshalb der Hinweise auf ein Search&Replace Tool, um in den unzähligen Abfragen der Namen der Tabelle durch den Namen der neuen Abfrage, die die Struktur der Tabelle simuliert, zu ersetzen.


Ein solches Tool wäre z.B. Search&Replace von Rick Fisher (http://www.rickworld.com/products.html). - Leider ist der Anbieter nicht mehr aktiv und man kann keine Lizenz mehr kaufen, aber die Trial-Version tut es für einen einmaligen Einsatz zur Not auch.
Titel: Re: Textfeld mit Großschreibung vor dem Komma und Kleinschreibung nach dem Komma
Beitrag von: MzKlMu am März 30, 2019, 18:02:28
Hallo,
wenn man nach meinem Vorschlag in #11 verfährt, braucht es nur die neue Tabelle mit den 3 neuen Feldern.
Es sind dann keine weiteren Anpassungen mehr notwendig.