VBA Tipp: Zufällige Zeichenfolge erzeugen
Aus DBWiki
Inhaltsverzeichnis
Problem
Ich möchte eine zufällige Folge von Buchstaben und Ziffern erzeugen (z.B. als Vorgabe für ein Passwort).
Lösung
Die folgende Funktion erzeugt eine zufällige Zeichenfolge, wobei sich minimale und maximale Länge vorgeben lassen:
Public Function RandomString(Optional MinLength As Long = 6, _ Optional MaxLength As Long = 12, _ Optional Dummy) As String 'Quelle: www.dbwiki.net oder www.dbwiki.de Const LegalChars As String = _ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" Dim length As Long Dim i As Long Dim ch As String * 1 Dim res As String Randomize length = Int(Rnd() * (MaxLength - MinLength + 1) + MinLength) For i = 1 To length Do ch = Chr$(Rnd() * 128) Loop Until InStr(LegalChars, ch) > 0 res = res & ch Next RandomString = res End Function
Aufruf
Debug.Print RandomString(8, 8) 'Rückgabe: 1TsmyFIV
Der 3. Parameter Dummy kann verwendet werden, um in einer Aktualisierungsabfrage den Aufruf der Funktion in jeder Zeile zu erzwingen:
UPDATE MeineTabelle SET MeinFeld = RandomString(8, 8, ID)
ID ist in diesem Fall der Primärschlüssel der Tabelle; das sieht dann im Abfrageentwurf so aus:

Anmerkung:
Durch Anpassen der Konstanten Legalchars
kann die verwendete Zeichenmenge erweitert oder eingeschränkt werden