Diese Methode (in Visual Basic geschrieben) erstellt eine neue Kontoiteration. Dies ist sehr hilfreich, wenn Sie mehrere Konten gleichzeitig erstellen, die einer bestimmten Namenskonvention folgen.
In meinem Arbeitsbereich muss ich täglich mehrere Konten in mehreren Webumgebungen erstellen. Diese Konten müssen einer bestimmten Namenskonvention pro Umgebung folgen. Eine Namenskonvention für ein neues Konto könnte wie folgt aussehen:
„Knoten“ + Nachname + Umgebungssuffix + #.
In unserer Testumgebung wäre beispielsweise „nodemccoytest200“ eine geeignete Namenskonvention.
Diese Konten mussten berücksichtigt werden, gefolgt von den Passwörtern, den Standardsprachen und dem Herkunftsland. Aus diesem Grund habe ich eine Access-Datenbank erstellt, da mir die Zugänglichkeit von Formularen und Registerkarten gefällt.
Stellen Sie sich nun vor, Sie müssten im Wesentlichen denselben Benutzernamen mit den Kontodaten MEHRFACH eingeben. MAL. EIN TAG.
Ich habe das ungefähr zwei Monate lang gemacht ... dann habe ich gemerkt, dass mir das Gefühl eines Karpaltunnels nicht gefällt, also habe ich ein VB-Skript erstellt, das mir die Drecksarbeit abgenommen hat.
Dies ist ein Screenshot eines Formulars, das ich erstellt habe, um alle Konten für eine Testumgebung einzugeben und zu bearbeiten. Wie Sie sehen, habe ich mehrere Konten erstellt ...
Mein zuletzt erstelltes Konto wird als „nodemccoytest280“ aufgeführt.
Wenn wir hier unten auf die Schaltfläche „Neues Konto“ klicken, wird ein neues Konto erstellt, das der Namenskonvention folgt und um ein Intervall nach oben geht. „nodemccoytest281“.
Private Sub cmdQuickAccountTest_Click()
'----------------Declarations----------------------
Dim dbs As DAO.Database, rst As DAO.Recordset, rst2 As DAO.Recordset
Dim varMaxID As Integer
Dim varMaxUser As String
Dim varUserNumber As String
'----------------String: Latest ID-------------------
Dim strFindID As String
strFindID = "SELECT Max(accID) as maxID " _
& "FROM tbl_Accounts " _
& "WHERE accType = 'TST';"
'----------------Method: Get latest ID --------------------
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset(strFindID)
varMaxID = rst!maxID
Zu Beginn unserer Funktion müssen wir unsere Datenbank- und Recordset-Variablen deklarieren, um unsere OpenRecordset-Funktion auszuführen. Die SELECT-Anweisung ruft den zuletzt erstellten Datensatz anhand seiner ID (accID) aus der Tabelle (tbl_Accounts) ab, wobei sein Kontotyp (accType) gleich „TST“ ist (das ist unser Suffix für unsere Testumgebung). Anschließend wird sie als String-Variable „strFindID“ initialisiert.
„strFindID“ wird dann an unsere OpenRecordset-Funktion übergeben und gelesen. Es findet die maxID und wird dann als „varMaxID“ initialisiert.
'----------------String: Latest username (from ID) -------------------
Dim strFindLastUser As String
strFindLastUser = "SELECT accName " & _
"FROM tbl_Accounts " & _
"WHERE accID = " & varMaxID & ""
'----------------Method: Get latest Username, then clean string to find the number-----------
Set rst2 = dbs.OpenRecordset(strFindLastUser)
varMaxUser = rst2!accName
varUserNumber = CleanString(varMaxUser)
Dim finalNumber As Integer
finalNumber = CInt(varUserNumber)
finalNumber = finalNumber + 1
'---------------------------------------------------------------------------------------------
Hier sind wir bei unserer zweiten SELECT-Anweisung, die als String-Variable initialisiert wurde: „strFindLastUser“. Dieses Mal wird der Kontoname (accName) aus der Tabelle (tbl_Accounts) AUSGEWÄHLT, wobei die ID (accID) unserer maximalen ID entspricht, die der Compiler aus der ersten SELECT-Anweisung (varMaxID) ausgewählt hat.
Die Zeichenfolge wird dann zur Übergabe an unsere OpenRecordset-Funktion verwendet und als „varMaxUser“ initialisiert. Dieses Mal wird „varMaxUser“ von allen Zeichen befreit, sodass nur eine Zahl zurückgegeben wird.
Diese Zahl wird dann mithilfe von „CInt“ in eine INT umgewandelt und anschließend 1 zu sich selbst addiert.
'-----------------Method: Declare all new variables before insert-----------------------------
Dim finalUsername As String
Dim finalEmail As String
Dim finalPassword As String
Dim finalLanguage As String
Dim finalCountry As Integer
Dim finalType As String
finalUsername = "nodemccoytest" & finalNumber
finalEmail = "* +test" & finalNumber & "@gmail.com"
finalPassword = "Password123!"
finalLanguage = "English (EN)"
finalCountry = 233
finalType = "TST"
Hier initialisieren wir alle unsere Variablen, damit sie in die SELECT-Anweisung eingelesen werden. Dadurch ist die SELECT-Anweisung lesbar. Dies ist auch der Zeitpunkt, um standardmäßig alle gewünschten Variablen zu ändern, da diese Variablen bei jedem Aufruf der Funktion in die Datenbank eingefügt werden.
'-----------------String: Insert new Username into table--------------------------------------
Dim strInsert As String
strInsert = "INSERT INTO tbl_Accounts " & _
"(accName, accEmail, accPassword, accLang, accCountry, accType) VALUES " & _
"('" & finalUsername & "' , '" & finalEmail & "', '" & finalPassword & "', '" & finalLanguage & "' , " & CStr(finalCountry) & " ,'" & finalType & "');"
'---------------------------------------------------------------------------------------------
dbs.Execute (strInsert)
DoCmd.Requery
End Sub
Hier sind wir bei unserem endgültigen Formular. Die INSERT-Anweisung wird als Zeichenfolge initialisiert und in unserer Funktion „dbs.Execute“ verwendet, die die Anweisung ausführt.
Anschließend wird das Formular erneut abgefragt, um den neu erstellten Datensatz anzuzeigen.