Hi,
nun habe ich ein neues Problem. Sicher wieder nur ein kleiner.
Ich habe den Code aus: Anderes Programm aufs Formular legen, damit Textfeld beschieben wird (http://www.access-o-mania.de/forum/index.php?topic=14282.msg81401#msg81401) angepasst, so dass ich nun auch Benutzername und BenutzernameOrbis generieren kann. Mit Benutzername funktioniert es, mit BenutzernameOrbis mag er nicht. Er gibt rein gar nichts im Textfelt aus. Änder ich aber BenutzernameOrbis in nur Benutzername - dies aber nur in der Schleife mit den drei Möglichkeiten - gibt er mir das was ich haben möchte aus, jedoch nicht im Textfeld für BenutzernameOrbis, sondern im Textfeld für Benutzername.
Ich hab schon den Code für Benutzername kopiert und diesen dann angepasst, der Fehler bleibt weiterhin bestehen.
Mein Code schaut für BenutzernameOrbis nach der anpassung so aus:
Private Sub BenutzernameOrbisGen_Click()
' für die Original-Tabelle
Dim quellRS As Recordset
' für die neue Tabelle
Dim zielRS As Recordset
' Hilfsvariable für die eindeutige Bezeichnung aus der die Logins und eMail-Adresse
' generiert werden kann
Dim eindeutig As String
' Hilfsvariablen für die Schleife
Dim nameVorhanden As Boolean
Dim mutation As String
'Variablen um die Tabelle anzusprechen
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim qdf As DAO.QueryDef
Dim lngStore As String
'variablen fürs generieren
Dim strVornamen As String
Dim strNachname As String
'Tabelle ansprechen
Set db = CurrentDb
Set qdf = db.QueryDefs("Abfrage1")
qdf.Parameters!qryPersNr = PersNr
qdf.Execute
qdf.Close: Set qdf = Nothing
Set db = Nothing
'Bookmarksetzen
lngStore = Me!PersNr
'Bildschirmflackern reduzieren
Me.Painting = True
'Aktualisieren (Refresh)
Me.Requery
'Zurück zum Bookmark
Me.RecordsetClone.FindFirst "PersNr = '" & lngStore & "'"
Me.Bookmark = Me.RecordsetClone.Bookmark
DoEvents
' Als erstes Normal versuchen
mutation = 1
' Nicht Eindeutig bis das Gegenteil bewiesen ist
nameEindeutig = False
' Solange wie der Name nicht eindeutig ist
Do While Not nameEindeutig
' Erster Versuch: 1. Buchstabe Vorname und Nachname
If mutation = 1 Then
eindeutig = Left(UCase(Forms!fmHaupt!Name), 6) & Left(UCase(Forms!fmHaupt!Vorname), 2)
BenutzernameOrbis = eindeutig
End If
' Zweiter Versuch: Voller Vorname und Nachname
If mutation = 2 Then
eindeutig = Left(UCase(Forms!fmHaupt!Name), 5) & Left(UCase(Forms!fmHaupt!Vorname), 3)
BenutzernameOrbis = eindeutig
End If
' Alle anderen Versuche: Mit Zahl dahinter
If mutation >= 3 Then
eindeutig = Left(UCase(Forms!fmHaupt!Name), 6) & Left(UCase(Forms!fmHaupt!Vorname), 2) & (mutation - 2)
BenutzernameOrbis = eindeutig
End If
' Nr für den nächsten Versuch festlegen
mutation = mutation + 1
' Gibts schon ??
strSQL = "select count(*) as anzahl from tbITerweitert where " & _
" BenutzernameOrbis= '" & eindeutig & "'"
Set zielRS = CurrentDb().OpenRecordset(strSQL)
zielRS.MoveFirst
' Wenn ja, dann nicht Eindeutig
If (zielRS!anzahl > 0) Then
nameEindeutig = False
' Sonst Eindeutig
Else
nameEindeutig = True
End If
Loop
' Aus diesem Loop kommt auf jeden Fall ein eindeutiger Name heraus
' Updaten
strSQL = "update tbITerweitert set BenutzernameOrbis='" & eindeutig & "'," & _
"where PersNr = '" & PersNr & "'"
' Nichts zum Updaten da, also Neu anlegen
If CurrentDb.RecordsAffected = 0 Then
strSQL = "insert into tbITerweitert (PersNr, BenutzernameOrbis,) " & _
" values (" & PersNr & ",'" & eindeutig & "')"
'CurrentDb.Execute strSQL
End If
' Der nächste bitte ...
End Sub
Ich verzweifel langsam ein wenig und bin für jede Hilfe dankbar.
LG Salvation
Hallo,
lies erst mal meine Posting zum anderen Thread.
Problem gelöst. Mit dem oben stehenden Quellcode.
Problem war die Bezeichnung des Textfeldes. Nachdem ich es nun Umbenannt habe, klappt es auch richtig.
LG Salvation