Biasanya ketika sobat membuat sebuah program yang memerlukan kode anggota atau semacamnya, kita tidak mungkin menginputkan value kode anggota tersebut secara manual. Repot kan? Nah, agar mudah disinilah diperlukan adanya fungsi Auto Generate Number. Prinsip kerjanya adalah dengan menentukan value atau nilai awal kode anggota, kemudian program akan membaca value yang sudah ada di database dan mengenerate value selanjutnya. Misal di database sudah ada nilai "AGT0001", maka program akan otomatis membuat value selanjutnya yaitu "AGT0002".
Kode Program
Berikut kode program untuk membuat Auto Generate Number di VB.NET:
Sub AutoGenerate()
Dim connString As String
connString = "Data Source=OSHA-PC\SQLEXPRESS;Initial Catalog=db_anggota;Integrated Security=True"
Dim conn As SqlConnection = New SqlConnection(connString)
Try
conn.Open()
Dim cmd As SqlCommand = New SqlCommand("SELECT * FROM tb_anggota ORDER BY kode_anggota DESC", conn)
Dim dr As SqlDataReader = cmd.ExecuteReader
dr.Read()
Dim kode_anggota As String
Try
If Not dr.HasRows Then
kode_anggota = "AGT0001"
Else
kode_anggota = Val(Microsoft.VisualBasic.Mid(dr.Item("kode_anggota").ToString, 5, 3)) + 1
If Len(kode_anggota) = 1 Then
kode_anggota = "AGT000" & kode_anggota & ""
ElseIf Len(kode_anggota) = 2 Then
kode_anggota = "AGT00" & kode_anggota & ""
ElseIf Len(kode_anggota) = 3 Then
kode_anggota = "AGT00" & kode_anggota & ""
End If
End If
Catch ex As Exception
MsgBox(ex.ToString)
Finally
textKode.Text = kode_anggota
conn.Close()
End Try
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Penjelasan
Berikut penjelasan dari kode program tadi agar Sobat Tekno dapat memahaminya:
1. Membaca isi tabel "tb_anggota" dan diurutkan berdasarkan "kode_anggota" secara descending.
SELECT * FROM tb_anggota ORDER BY kode_anggota DESC
2. Menentukan nilai awal "kode_anggota".
kode_anggota = "AGT0001"
3. Perhatikan kode berikut, terdapat angka 5. Disini menyesuaikan panjang karakter, contoh "kode_anggota" panjang karakternya 7 digit. Maka angka tersebut adalah 5 ( Hasil 7 dikurangi 2). Jika ingin membuat panjang 10 digit maka ganti angka 5 menjadi 8 (Hasil 10 dikurangi 2).
kode_anggota = Val(Microsoft.VisualBasic.Mid(dr.Item("kode_anggota").ToString, 5, 3)) + 1
3. Jika "kode_anggota" bernilai 1 digit (Misal 1), maka kode depannya adalah "AGT000" (Contoh: AGT0001).
If Len(kode_anggota) = 1 Then
kode_anggota = "AGT000" & kode_anggota & ""
4. Jika "kode_anggota" bernilai 2 digit (Misal 10), maka kode depannya adalah "AGT00" (Contoh: AGT0010).
ElseIf Len(kode_anggota) = 2 Then
kode_anggota = "AGT00" & kode_anggota & ""
5. Jika "kode_anggota" bernilai 2 digit (Misal 100), maka kode depannya adalah "AGT0" (Contoh: AGT0100).
ElseIf Len(kode_anggota) = 3 Then
kode_anggota = "AGT00" & kode_anggota & ""
6. Menampilkan hasil "kode_anggota" ke TextBox "textKode".
textKode.Text = kode_anggota
Untuk menggunakan fungsi tersebut tinggal memanggilnya dengan perintah Call AutoGenerate() pada saat Form Load.
Sekian dulu tutorial kali ini, semoga bermanfaat untuk sobat semua. Jika masih belum paham atau ada yang ingin ditanyakan, silahkan tulis di komentar. Terima kasih.









0 komentar:
Posting Komentar