Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Access VBA - Umlaute replacen und Zeichen begrenzen

Mitglied: tray-park

tray-park (Level 1) - Jetzt verbinden

07.03.2012 um 19:25 Uhr, 2822 Aufrufe, 2 Kommentare

Access 2007 SP3
Ich bin kein professioneller Entwickler

Hallo in die Runde,

ich bastele gerade an ner kleinen Benutzerverwaltungsdatenbank.

Hierzu habe ich eine User-Tabelle erstellt, in welcher das "username"-Feld auf 20 Zeichen begrenzt ist.

Im Formular trägt man dann Vor- & Nachnamen in Textfelder (txt_first_name & txt_last_name) ein.

Nach dem LostFocus des txt_last_name werden die Werte der beiden Textfelder in der Textbox txt_Username verkettet und die Anfangsbuchstaben der Namen von Groß- in Kleinschreibung geändert.

Daraufhin wird der Inhalt der Textbox auf Umlaute überprüft und die Gefundenen, mit Vokalen ersetzt.

Wenn der Username nun größer 20 ist, wirft die Runtime Fehler aus.

Bei genau 21 Zeichen:

Run-time-error '3163'

The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.

Bei mehr als 21 Zeichen:

Run-time-error '-2147352567 (80020009)':

The field is too small to accept the amount of data you attempted to add. Try inserting or pasting less data.

Daraufin habe ich versucht den Fehler abzufangen. Tritt ein Fehler auf, wird die Zeichenkette auf 20 Zeichen reduziert und der oben erklärte Vorgang wiederholt. Leider war das wohl nix.

Ist die Kette nun größer 20 geschieht halt leider gar nichts.

Hier der Code:
01.
 
02.
Private Sub txt_last_name_LostFocus() 
03.
 
04.
On Error GoTo UmlautProb 
05.
 
06.
txt_last_name = UCase(Left(txt_last_name, 1)) & LCase(Mid(txt_last_name, 2)) 
07.
 
08.
txt_Username = LCase(txt_first_name.Value & txt_last_name.Value) 
09.
 
10.
txt_Username.Value = Replace(txt_Username.Value, "ä", "ae") 
11.
txt_Username.Value = Replace(txt_Username.Value, "ö", "oe") 
12.
txt_Username.Value = Replace(txt_Username.Value, "ü", "ue") 
13.
 
14.
txt_Username.Value = Replace(txt_Username.Value, "Ä", "Ae") 
15.
txt_Username.Value = Replace(txt_Username.Value, "Ö", "Oe") 
16.
txt_Username.Value = Replace(txt_Username.Value, "Ü", "Ue") 
17.
 
18.
txt_Username.Value = Replace(txt_Username.Value, "ß", "ss") 
19.
 
20.
UmlautProb: 
21.
 
22.
Select Case Err.Number 
23.
 
24.
Case 3163: 
25.
'If Len(txt_Username.Value) > 20 Then 
26.
 
27.
Dim s1 As String 
28.
Dim s2 As String 
29.
 
30.
s1 = txt_Username.Value 
31.
 
32.
s2 = Left(s1, 20) 
33.
 
34.
txt_Username.Value = s2 
35.
 
36.
txt_last_name = UCase(Left(txt_last_name, 1)) & LCase(Mid(txt_last_name, 2)) 
37.
 
38.
txt_Username = LCase(txt_first_name.Value & txt_last_name.Value) 
39.
 
40.
txt_Username.Value = Replace(txt_Username.Value, "ä", "ae") 
41.
txt_Username.Value = Replace(txt_Username.Value, "ö", "oe") 
42.
txt_Username.Value = Replace(txt_Username.Value, "ü", "ue") 
43.
 
44.
txt_Username.Value = Replace(txt_Username.Value, "Ä", "Ae") 
45.
txt_Username.Value = Replace(txt_Username.Value, "Ö", "Oe") 
46.
txt_Username.Value = Replace(txt_Username.Value, "Ü", "Ue") 
47.
 
48.
txt_Username.Value = Replace(txt_Username.Value, "ß", "ss") 
49.
 
50.
'End If 
51.
 
52.
'Exit Sub 
53.
 
54.
End Select 
55.
 
56.
End Sub 
57.
 
Ich denke ich liege nicht falsch mit der Vermutung, hier einiges durcheinander gebracht zu haben.

Könnt ihr mir etwas unter die Arme greifen?

Freue mich über jede Rückmeldung

LG Tray
Mitglied: n4426
07.03.2012 um 20:34 Uhr
Hi Tray,

ich würds einfach so machen.

01.
Private Sub txt_last_name_LostFocus()  
02.
'Nachname Formatieren 
03.
Me.Nachname = UCase(Left(Me.Nachname, 1)) & LCase(Mid(Me.Nachname, 2)) 
04.
 
05.
'Vorname Formatieren 
06.
Me.Vorname = UCase(Left(Me.Vorname, 1)) & LCase(Mid(Me.Vorname, 2)) 
07.
 
08.
'Username ermitteln 
09.
Dim varUsername As String 
10.
 
11.
 
12.
varUsername = LCase(Me.Vorname & "." & Me.Nachname) 
13.
 
14.
varUsername = Replace(varUsername, "ä", "ae") 
15.
varUsername = Replace(varUsername, "ö", "oe") 
16.
varUsername = Replace(varUsername, "ü", "ue") 
17.
 
18.
varUsername = Replace(varUsername, "Ä", "Ae") 
19.
varUsername = Replace(varUsername, "Ö", "Oe") 
20.
varUsername = Replace(varUsername, "Ü", "Ue") 
21.
 
22.
varUsername = Replace(varUsername, "ß", "ss") 
23.
 
24.
'Username auf max. 20 Zeichen kürzen (wenn notwendig) 
25.
Me.username = Left(varUsername, 20) 
26.
 
27.
End Sub 
mfg
n4426
Bitte warten ..
Mitglied: tray-park
08.03.2012 um 09:15 Uhr
Hi n4426,

vielen Dank für die großartige Hilfe.
Funktioniert super.

Danke.

Liebe Grüße

Tray
Bitte warten ..
Ähnliche Inhalte
VB for Applications

Excel Zelle auf bestimmte Anzahl von Zeichen begrenzen mit VBA

gelöst Frage von Anna2701VB for Applications8 Kommentare

Hallo zusammen, ich würde gerne eine Zelle einer Excel Tabelle auf 132 Zeichen begrenzen und der Rest der über ...

Batch & Shell

Batch Variable auf 5 Zeichen begrenzen

gelöst Frage von PinkFLuffyUnicornBatch & Shell5 Kommentare

Hallo zusammen, ich habe folgendes Problem: ich habe ein kleines Batch Programm, welches eine Benutzereingabe erfordert. der Benutzer soll ...

Microsoft Office

VBA Verzeichnis mit Istgleich Zeichen öffnen

gelöst Frage von BloodyRulzMicrosoft Office2 Kommentare

Hallo, ich hoffe Ihr könnt mir helfen. Zuerst einmal, ich bin ein kompletter Anfänger in VBA. Problem: In meiner ...

VB for Applications

Access 2010 vba Recordset

gelöst Frage von EUuserVB for Applications3 Kommentare

Hallo zusammen, ich arbeite seit langem mal wieder mit Access und vba: Ich habe eine Datenbank, zwei Tabellen (identisch ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 23 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk13 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...