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) & " "