Metode ini (ditulis dalam Visual Basic) membuat iterasi akun baru. Ini sangat membantu saat membuat beberapa akun sekaligus, yang mengikuti konvensi penamaan tertentu.
Di bidang pekerjaan saya, saya diharuskan membuat banyak akun per hari di berbagai lingkungan web. Akun ini harus mengikuti konvensi penamaan tertentu per lingkungan. Konvensi penamaan untuk akun baru dapat berupa:
"node" + nama belakang + akhiran lingkungan + #.
Misalnya, di lingkungan Pengujian kami, "nodemccoytest200" akan menjadi konvensi penamaan yang tepat.
Akun-akun ini harus dipertanggungjawabkan, diikuti dengan kata sandi, bahasa default, dan negara asal. Saya membuat database Access karena alasan ini, karena saya menikmati aksesibilitas formulir dan tab.
Sekarang, bayangkan harus mengetikkan nama pengguna yang sama, dengan detail akun, GANDA. WAKTU. SEHARI.
Saya melakukan ini, selama sekitar 2 bulan... lalu saya pikir saya tidak menikmati perasaan terowongan karpal, jadi saya membuat skrip VB yang melakukan pekerjaan kotor untuk saya.
Ini adalah tangkapan layar formulir yang saya buat untuk memasukkan dan mengedit semua akun untuk lingkungan Tes. Seperti yang Anda lihat, saya telah membuat beberapa akun...
Akun terbaru saya yang dibuat terdaftar sebagai "nodemccoytest280".
Di sini, ketika kita memilih tombol "Akun Baru" di bagian bawah, akun baru akan dibuat mengikuti konvensi penamaan, dan naik satu interval; "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
Di awal fungsi kita, kita perlu mendeklarasikan variabel database dan recordset untuk menjalankan fungsi OpenRecordset. Pernyataan SELECT mengambil catatan terbaru yang dibuat dari ID-nya (accID) dari tabel (tbl_Accounts), dengan jenis akunnya (accType) sama dengan 'TST' (yang merupakan akhiran untuk lingkungan Pengujian kami). Ini kemudian akan diinisialisasi sebagai variabel string 'strFindID'.
'strFindID' kemudian akan diteruskan ke fungsi OpenRecordset kami dan dibaca. Ini akan menemukan maxID, dan kemudian diinisialisasi sebagai 'varMaxID'.
'----------------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
'---------------------------------------------------------------------------------------------
Di sini kita berada pada pernyataan SELECT kedua yang diinisialisasi sebagai variabel string, 'strFindLastUser'. Kali ini, ia akan MEMILIH nama akun (accName) dari tabel (tbl_Accounts), di mana ID (accID) sama dengan ID maksimum yang dipilih kompiler dari pernyataan SELECT pertama (varMaxID).
String kemudian akan digunakan untuk meneruskan dirinya ke fungsi OpenRecordset kami, dan diinisialisasi sebagai 'varMaxUser'. Kali ini, 'varMaxUser' akan dibersihkan dari semua karakter, sehingga hanya nomor yang dikembalikan.
Angka ini kemudian akan diubah menjadi INT dengan menggunakan 'CInt', lalu menambahkan 1 pada angka itu sendiri.
'-----------------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"
Di sini, kami menginisialisasi semua variabel kami untuk dibaca ke dalam pernyataan SELECT. Ini agar pernyataan SELECT dapat dibaca. Ini juga merupakan waktu untuk mengubah variabel apa pun yang Anda inginkan secara default, karena setiap kali fungsi dipanggil, variabel tersebut akan dimasukkan ke dalam database.
'-----------------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
Di sini kita berada pada bentuk akhir kita. Pernyataan INSERT diinisialisasi sebagai string, dan digunakan dalam fungsi 'dbs.Execute' kami, yang mengeksekusi pernyataan tersebut.
Formulir tersebut kemudian diminta untuk menampilkan rekaman yang baru dibuat.