Visual Basic 6 , format no nota yang reset per tahun , bag 3
Pada bagian 2, tentang format no nota yang dapa reset kembali ke awal urutan semula. Untuk yang bagian 3 ini, lebih dalam lagi dibahas mengenai penerapan di coding layout dan tampak hasil.
Pada Form penjualan, bisa dengan membuat Sub yang berisi prosedure untuk query SQL yang ditampung dalam variabel string. Oleh variebel recordset, ditampung untuk mewakili query tabel yang dimaksud
Sub NomorNota
strSql = “SELECT max(Val(Right(no_nota, Len(Trim(no_nota))-8))) as nota FROM jual where year(tanggal)=" & Val(vTahun_db) & ”
‘coding SQL di atas menerangkan bahwa kolom alias nota diperoleh dari query dengan mencari angka urutan paling maks (terbesar) dari format nota yang dihitung dari mulai kanan.
Set RS2 = cN.Execute(strSql)
‘variabel RS2, sebagai penampung hasil query dengan tipe data recordset atau data tabel
With RS2
If IsNull(!nota) Then
‘apabila kolom alias nota null ( bisa dikatakan belum ada data)
txtNoNota.Text = Trim("RK." + vMMYY + ".001")
‘maka isilah txtnonota.texy menjadi RK.0519.001 (sesuai bulan tahun datepicker nya)
Exit Sub
End If
If Not .EOF Then ‘apabila ada data
If Val(VBA.Right(!nota, 4)) > 99 Then
‘apabila hasil kolom alias lebih dari 99
txtNoNota.Text = Trim("RK." + vMMYY + ".") + Trim(Str(!nota + 1))
‘isilah Txtnonota.text = RK.0519.1000 dan seterusnya
ElseIf Val(VBA.Right(!nota, 4)) <= 99 Then
‘apabila hasil kolom alias kurang dariatau sama dengan 99
txtNoNota.Text = Trim("RK." + vMMYY + ".0") + Trim(Str(!nota + 1))
‘isilah Txtnonota.text = RK.0519.099 dan ke bawah
ElseIf Val(VBA.Right(!nota, 4)) <= 9 Then
‘apabila hasil kolom alias kurang dari atau sama dengan 9
txtNoNota.Text = Trim("RK." + vMMYY + ".00") + Trim(Str(!nota + 1))
‘isilah Txtnonota.text = RK.0519. 001 dan seterusnya
End If
End If
End Sub
Visual Basic 6 , format no nota yang reset per tahun , bag 1
Sebelum membahas script query dalam implementasi di antar muka aplikasi, lebih baik mengetahui dulu struktur tabel di modul penjualan.
Kolom No nota adalah kolom kunci, yang digunakan sebagai pembeda tiap transaksi penjualan. Secara sederhana tabel penjualan meliputi 2 tabel yang salaing berhubungan. Tabel tersebut adalah tabel jual dan detailjual.
Untuk menjelaskan artikel yang berjudul “Visual Basic 6 , format no nota yang reset per tahun”, maka cukup kita uraikan struktur tabel untuk tabel jual saja.
Yaitu meliputi; no_nota (varchar, 20), tanggal (date), id_customer (varchar, 20),Total (Numeric,single).
Format no nota yang idnginkan misal; RK.0519.001
RK adalah inisial usaha (tergantung pemesan, bisa 2 atu 3 dst, asal konstan)
0519 adalah format bulan tahun yang diambil 2 angka, yaitu 05 untuk Mei dan 19 untuk tahun 2019.
001 adalah urutan pertama kali saat mengisi data.(data masih kosong)
Pada antar muka, dibuat letak Text box TXTno_nota lebih di bawah dari pada objek datepicker , yang diberi nama DTTanggal.Maksud tata letak ini, adalah agar user mengatur/memilih dulu tanggal dari datepicker yang secara ototmatis akan memberi format no nota di objek TXTno_nota, format no nota nya.
Dim vTahun_db As String, vMMYY As String
vMMYY = Format(DtTanggal.value, "MMYY")
vTahun_db = VBA.Mid(Format(DtTanggal. value, "DD/MM/YYYY"), 7, 4)
strSql = "SELECT max(Val(Right(no_nota, Len(Trim(no_nota))-8))) as nota FROM jual where " _
+ " year(tanggal)=" & Val(vTahun_db) & " "