Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

bestimmte Zeichen von Zufallsgenerator ausschließen

Begonnen von Wuggerer, Juli 06, 2019, 20:41:53

⏪ vorheriges - nächstes ⏩

Wuggerer

Guten Abend Zusammen,
ich war auf der Suche nach einem Passwortgenerator auf Access Basis. Mit ein bisschen Umbauarbeiten habe ich eine passende Vorlage im Netz gefunden. Habe nur einen Schönheitsfehler. Ich würde gerne die Zeichen (91-96) ausschließen,Bild1, da diese bei den meisten Webseiten die ich bisher ausprobiert habe ausgeschlossen sind. Mein Code sieht folgendermaßen aus
Private Sub btnGenPw_Click()
Dim i As Integer
Dim x As String
Dim iBereich As Integer

  For i = 1 To Me.txtLänge
    Select Case Me.optCode
      Case 1
        x = x & Chr(genZufallsZahl(1, 127, 1))
             
      Case 2
        Select Case genZufallsZahl(1, 2, 1)
          Case 1
            x = x & Chr(genZufallsZahl(97, 122, 1))
          Case 2
            x = x & Chr(genZufallsZahl(65, 90, 1))
        End Select
      Case 3
        x = x & Chr(genZufallsZahl(32, 127, 1))
    End Select
  Next i
 
  Me.txtPw = x
 
End Sub

Kann ich im Cace 3 cen Code so anpassen, dass die Sonderzeichen (91-95) ausgeschlossen werden?
Danke für eure Hilfe.

markusxy

Du machst dir eine Liste aller erlaubten Zeichen - entweder einen konstanten String, oder ein Array und wählst dann aus der Menge mittels Zufallsgenerator ein Element.

Wuggerer

Ich Weiß dass nervt  ;) aber ginge es noch ein bisschen genauer? Wie in etwa würde so n Code aussehen?  Leider bin ich nicht so gut in VBA wie ich es gerne wäre. Für weitere Erläuterungen wäre ich sehr dankbar.
Grüße
:)

markusxy

Was ist dir denn unklar?

Mach einen String mit allen erlaubten Zeichen.
Der Generator wählt dann eine Zahl zwischen 1 und und der Länge des Strings.
Mittels der Mid$ Funktion fügst du das Zeichen dann an den Ergebnisstring an.

Das schafft man dann auch als völliger Anfänger, sofern man sich etwas bemüht.
Die Funktion kannst ja in der Hilfe ansehen.