PDA

Vollständige Version anzeigen : Gross- und Kleinschreibung/Trennung


wulffh
25.06.2001, 20:21
Hallo zusammen!
Mir liegen Personendaten in Grossbuchstaben vor. Zumeist Vorname, 2. Vorname und Nachname in einem Feld. Zunaechst moechte ich den Nachnamen in ein gesondertes Feld abspalten --> Wie muss der Befehl dafuer in einer Update-Abfrage aussehen?
Ferner moechte ich die Grossbuchstaben in Woerter beginnend mit Grossbuchstaben und Kleinbuchstaben folgend formatieren --> Wie muss der Befehl dafuer in einer Update-Abfrage aussehen?

Vielen Dank im Voraus!
Hendrik

Morli
26.06.2001, 06:31
Hallo Hendrik,

kannst Du bitte mal ein Beispiel für einem Namen posten? Es wäre wichtig zu wissen, wie die Trennung zwischen 1. Vornamen, 2. Vorname und Nachnamen erfolgt! Sind hier Leertaste oder ...?

Gruß

Rainer :)

wulffh
26.06.2001, 15:01
Ein klassischer Name ist z. B.

GOFFREY FITZGERALD GREENE

Die Namensbestandteile sind mit Leerzeichen getrennt, so dass wahrscheinlich eine Trennung anhand der Leerstellen erfolgen muesste, oder?

Günther Kramer
26.06.2001, 15:37
Hallo Hendrik,

für die Gross- und Kleinschreibung findest du ein kleines Code-Beispiel auf unserer Homepage. http://www.access-paradies.de -> Software-Katalog -> Tips & Tricks -> String

wulffh
26.06.2001, 18:46
Gibt es auch eine Moeglichkeit, die Formatierung ueber eine Update-Abfrage zu generieren?

Morli
26.06.2001, 20:38
Hallo Forum.

falls es jemand interessiert, wir haben das Ganze auf kleinem Dienstweg (eMail) gelöst.
Folgender Code splittet den Namen in Vor- und Nachnamen incl. Groß/Kleinschrift und kann entsprechend inder Abfrage aufgerufen werden:

Option Compare Database
Option Explicit
Dim intmax As Long
Dim VorNameGetrennt As String

Function NachName(ByVal Namen As String) As String
Dim intI, intStelle As Long


Namen = LCase(Namen)
Namen = UCase(Left(Namen, 1)) & Right(Namen, Len(Namen) - 1)

For intI = 1 To Len(Namen)
intStelle = InStr(intI, Namen, " ")
If intStelle <> 0 Then
intmax = intStelle
Namen = Left(Namen, intStelle) & UCase(Left(Right(Namen, Len(Namen) - intStelle), 1)) & Right(Namen, Len(Namen) - intStelle - 1)
End If
Next
VorNameGetrennt = RTrim(Left(Namen, intmax))
NachName = Right(Namen, Len(Namen) - intmax)
End Function

Function VorName(ByVal Namen As String) As String
Call NachName(Namen)
VorName = VorNameGetrennt
End Function

Hendrik hat es zumindest geholfen.

Gruß

Rainer :)