Hallo Zusammen, ich habe ein folgendes Problem.
Ich habe eine Userform erstellt und über die soll ein neuer Benutzer angelegt werden.
Das soll folgendermaßen funktionieren:
In die Textbox "new_id" wird die Mitarbeiterkarte eingescannt mit der Personalnummer
In die Textboxt "new_id2" soll die Karte wiederholt gescannt werden
Wenn "new_id" und "new_id2" übereinstimmen, wird die Textbox "new_name" aktiviert
In die Textbox "new_name" wird dann der Name vom Mitarbeiter eingegen
Wenn alle Felder ausgefüllt sind, wird der Commandbutton "cmd_ok" aktiviert
Über den Button werden "new_id2" und "new_Name" in eine Tabelle in die nächste leere Zeile eingetragen.
Hier handelt es sich aber um eine intelligente Tabelle ("id")
Das funktioniert alles soweit, aber wenn ich jetzt mit der neuen Userkennung über eine andere Userform mich anmelden will, wird der neue User nicht erkannt und taucht in der Liste nicht auf.
Wenn ich aber händisch den neuen User in der Tabelle anlege, funktioniert alles wie es sollte...
Hier der Code zu der Userform "Neuer Benutzer"
Muss ich beim "Private Sub cmd_ok_click()" irgendwie die intelligente Tabelle ansprechen? Wenn ja - wie mache ich das effektiv?
Ich habe eine Userform erstellt und über die soll ein neuer Benutzer angelegt werden.
Das soll folgendermaßen funktionieren:
In die Textbox "new_id" wird die Mitarbeiterkarte eingescannt mit der Personalnummer
In die Textboxt "new_id2" soll die Karte wiederholt gescannt werden
Wenn "new_id" und "new_id2" übereinstimmen, wird die Textbox "new_name" aktiviert
In die Textbox "new_name" wird dann der Name vom Mitarbeiter eingegen
Wenn alle Felder ausgefüllt sind, wird der Commandbutton "cmd_ok" aktiviert
Über den Button werden "new_id2" und "new_Name" in eine Tabelle in die nächste leere Zeile eingetragen.
Hier handelt es sich aber um eine intelligente Tabelle ("id")
Das funktioniert alles soweit, aber wenn ich jetzt mit der neuen Userkennung über eine andere Userform mich anmelden will, wird der neue User nicht erkannt und taucht in der Liste nicht auf.
Wenn ich aber händisch den neuen User in der Tabelle anlege, funktioniert alles wie es sollte...
Hier der Code zu der Userform "Neuer Benutzer"
Visual Basic-Quellcode
- Private Sub userform_Initialize()
- 'Zensur bei der UserID Eingabe
- With Me.ma_id
- .PasswordChar = "*"
- .SetFocus
- .ForeColor = RGB(0, 0, 255)
- .Font.Size = 14
- End With
- With Me.new_id
- .PasswordChar = "*"
- .ForeColor = RGB(0, 0, 255)
- .Font.Size = 14
- End With
- With Me.new_id2
- .PasswordChar = "*"
- .ForeColor = RGB(0, 0, 255)
- .Font.Size = 14
- End With
- With Me.New_name
- .ForeColor = RGB(0, 0, 255)
- .Font.Size = 14
- End With
- End Sub
- Private Sub ma_id_Change()
- 'Name aktivieren
- ma_name.Enabled = True
- 'Name befüllen
- Dim Zeile As Long
- Dim tbl As ListObject
- Set tbl = DatenMA.ListObjects("adminlog")
- 'Schleife über alle Zeilen der Tabelle
- For Zeile = 1 To tbl.DataBodyRange.Rows.Count
- 'Pürfen auf Übereinstimmung
- If ma_id.Value = tbl.DataBodyRange(Zeile, 1).Text Then
- 'Wert zuweisen
- ma_name.Value = tbl.DataBodyRange(Zeile, 2).Text
- 'User ID ausblenden
- ma_id.Visible = False
- Label1.Visible = False
- End If
- Next Zeile
- 'Name deaktivieren
- ma_name.Enabled = False
- End Sub
- Private Sub new_id2_Change()
- If new_id.Value = new_id2.Value Then
- New_name.Enabled = True
- End If
- new_id.Enabled = False
- End Sub
- Private Sub New_name_Change()
- new_id2.Enabled = False
- If New_name > 0 Then
- cmd_ok.Enabled = True
- End If
- End Sub
- Private Sub cmd_ok_click()
- 'Prüfung, ob alle Felder befüllt sind
- If New_name.Value = "" Then
- MsgBox "Name vom neuen Benutzer muss angegeben werden!", , ""
- Exit Sub
- End If
- With Worksheets("Freigaben")
- ' Passwortschutz deaktivieren
- .Unprotect Password:=Worksheets("Freigaben").Range("E4")
- 'Daten ins Tabellenblatt übernehmen
- Dim neueZeile As Long
- neueZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
- ' ID
- .Cells(neueZeile, 1).Value = new_id2.Text
- ' Name
- .Cells(neueZeile, 2).Value = New_name.Text
- ' Passwortschutz aktivieren
- .Protect Password:=Worksheets("Freigaben").Range("E4")
- End With
- Unload Me
- End Sub
Muss ich beim "Private Sub cmd_ok_click()" irgendwie die intelligente Tabelle ansprechen? Wenn ja - wie mache ich das effektiv?