Loading Progressbar Berdasarkan Record dengan Visual Basic 6.0 (VB6)
https://carakuvb6.blogspot.com/2017/11/loading-progressbar-berdasarkan-record.html
Progressbar merupakan satu kesatuan dari komponen Microsoft Windows Common Controls 6.0 (SP6) Fungsi dari Progressbar ini telah disinggung pada artikel sebelumnya yaitu Progress di Subitems ListView tapi untuk kali ini sedikit berbeda, admin akan mencoba membuat script loading dari Progressbar berdasarkan data yang diakses. Data yang akan digunakan record didalam tabel dari database MySQL Server.
Buat terlebih dahulu database pada MySQL Server kemudian diteruskan tabelnya juga, untuk script pembuatan database dan tabelnya ada dibawah ini
CREATE DATABASE `BelajarTriger`
CHARACTER SET 'latin1'
COLLATE 'latin1_swedish_ci';
CREATE TABLE `penjualan` (
`FAKTUR` varchar(50) DEFAULT NULL,
`TANGGAL` date DEFAULT NULL,
`IDBARANG` varchar(50) DEFAULT NULL,
`NMBARANG` varchar(50) DEFAULT NULL,
`HRGBELI` int(20) DEFAULT NULL,
`SATUAN` varchar(10) DEFAULT NULL,
`HRGJUAL` int(20) DEFAULT NULL,
`JUMBRG` int(20) DEFAULT NULL,
`DISCOUNT` int(20) DEFAULT NULL,
`DISCOUNT2` int(20) DEFAULT NULL,
`SUBTOTAL` int(20) DEFAULT NULL
) ENGINE=MyISAM AUTO_INCREMENT=2031 DEFAULT CHARSET=latin1;
CREATE DATABASE `BelajarTriger`
CHARACTER SET 'latin1'
COLLATE 'latin1_swedish_ci';
CREATE TABLE `penjualan` (
`FAKTUR` varchar(50) DEFAULT NULL,
`TANGGAL` date DEFAULT NULL,
`IDBARANG` varchar(50) DEFAULT NULL,
`NMBARANG` varchar(50) DEFAULT NULL,
`HRGBELI` int(20) DEFAULT NULL,
`SATUAN` varchar(10) DEFAULT NULL,
`HRGJUAL` int(20) DEFAULT NULL,
`JUMBRG` int(20) DEFAULT NULL,
`DISCOUNT` int(20) DEFAULT NULL,
`DISCOUNT2` int(20) DEFAULT NULL,
`SUBTOTAL` int(20) DEFAULT NULL
) ENGINE=MyISAM AUTO_INCREMENT=2031 DEFAULT CHARSET=latin1;
Untuk tampilan dari sourcode yang akan kita buat seperti diatas, pertama buatlah sebuah form dan tambahkan juga satu buah modul. Untuk komponen kita menggunakan Microsoft Windows Common Controls 6.0 (SP6) - ProgressBar. Designal form kurang sedemikian rupa kurang lebihnya seperti gambar diatas. Copykan sub fungsi dan variabel koneksi database dibawah ke module
Public CN As New ADODB.Connection
Public xRs As New ADODB.Recordset
Sub Koneksi()
Dim NServer, NUser, NPass, NDatabase As String
NServer = "localhost"
NUser = "root"
NPass = ""
NDatabase = "BelajarTriger"
CN.CommandTimeout = 0
If CN.State Then
CN.Close
CN.CursorLocation = adUseClient
CN.ConnectionString = "DRIVER={MySQL ODBC 5.3 ANSI Driver};" & _
"SERVER=" & NServer & " ;Port=3306;DATABASE=" & NDatabase & ";" & _
"UID=" & NUser & " ;PWD=" & NPass & ";OPTION=3"
CN.Open
Else
CN.CursorLocation = adUseClient
CN.ConnectionString = "DRIVER={MySQL ODBC 5.3 ANSI Driver};" & _
"SERVER=" & NServer & " ;Port=3306;DATABASE=" & NDatabase & ";" & _
"UID=" & NUser & " ;PWD=" & NPass & ";OPTION=3"
CN.Open
End If
End Sub
Selanjutnya double klik pada form dan copykan syntak dibawah ini pilih prosedur Form_Load
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , , "Tgl. Trans", 1800
ListView1.ColumnHeaders.Add , , "No. Faktur", 3200
ListView1.ColumnHeaders.Add , , "Kode Barang", 1600
ListView1.ColumnHeaders.Add , , "Nama Barang", 4000
ListView1.ColumnHeaders.Add , , "Satuan", 1200
ListView1.ColumnHeaders.Add , , "Qty", 600, 2
ListView1.ColumnHeaders.Add , , "Harga Jual", 1500, 1
ListView1.ColumnHeaders.Add , , "Hrg Jual x Jum Brg", 0
ListView1.ColumnHeaders.Add , , "Diskon 1", 1000, 1
ListView1.ColumnHeaders.Add , , "Diskon 2", 1000, 1
ListView1.ColumnHeaders.Add , , "Subtotal", 1500, 1
PgLoad.Visible = False
Dilanjutkan dengan pembuatan Sub Books_Penjualan, sub ini berfungsi untuk menampilkan data dari tabel koneksi MySQL Server dan syntak Loading Progressbar Berdasarkan Record
Sub Books_Penjualan()
Dim LI As ListItem
Dim SQL As String
ListView1.ListItems.Clear
ListView1.Sorted = False
SQL = "SELECT * from penjualan"
Set xRs = New ADODB.Recordset
xRs.Open SQL, CN, 1, 3
PgLoad.Min = 0
PgLoad.Max = xRs.RecordCount
If xRs.RecordCount = 0 Then
ListView1.ListItems.Clear
PgLoad.Value = 0
Else
PgLoad.Visible = True
PgLoad.Value = 0
xRs.MoveFirst
While Not xRs.EOF
Set LI = ListView1.ListItems.Add(, , Format(xRs.Fields!TANGGAL, "dd/MM/yyyy"))
LI.SubItems(1) = xRs.Fields!FAKTUR
LI.SubItems(2) = xRs.Fields!IDBARANG
LI.SubItems(3) = xRs.Fields!NMBARANG
LI.SubItems(4) = xRs.Fields!SATUAN
LI.SubItems(5) = xRs.Fields!JUMBRG
LI.SubItems(6) = Format(xRs.Fields!HRGJUAL, "#,##0")
LI.SubItems(7) = Format(xRs.Fields!HRGJUAL * xRs.Fields!JUMBRG, "#,##0")
LI.SubItems(8) = Format(xRs.Fields!DISCOUNT, "#,##0")
LI.SubItems(9) = Format(xRs.Fields!DISCOUNT2, "#,##0")
LI.SubItems(10) = Format(xRs.Fields!SubTotal, "#,##0")
xRs.MoveNext
PgLoad.Value = Int(PgLoad.Value) + 1
Wend
If PgLoad.Value = PgLoad.Max Then
PgLoad.Visible = False
MsgBox "Load Data : " & Format(xRs.RecordCount, "#,##0") & " Record Complate", 64, "Informasi"
End If
End If
End Sub
Double klik pada tombol Load Data kemudian panggil sub-sub function yang telah kita buat tadi seperti syntak dibawah ini
Call Koneksi
Call Books_Penjualan
Public CN As New ADODB.Connection
Public xRs As New ADODB.Recordset
Sub Koneksi()
Dim NServer, NUser, NPass, NDatabase As String
NServer = "localhost"
NUser = "root"
NPass = ""
NDatabase = "BelajarTriger"
CN.CommandTimeout = 0
If CN.State Then
CN.Close
CN.CursorLocation = adUseClient
CN.ConnectionString = "DRIVER={MySQL ODBC 5.3 ANSI Driver};" & _
"SERVER=" & NServer & " ;Port=3306;DATABASE=" & NDatabase & ";" & _
"UID=" & NUser & " ;PWD=" & NPass & ";OPTION=3"
CN.Open
Else
CN.CursorLocation = adUseClient
CN.ConnectionString = "DRIVER={MySQL ODBC 5.3 ANSI Driver};" & _
"SERVER=" & NServer & " ;Port=3306;DATABASE=" & NDatabase & ";" & _
"UID=" & NUser & " ;PWD=" & NPass & ";OPTION=3"
CN.Open
End If
End Sub
Selanjutnya double klik pada form dan copykan syntak dibawah ini pilih prosedur Form_Load
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , , "Tgl. Trans", 1800
ListView1.ColumnHeaders.Add , , "No. Faktur", 3200
ListView1.ColumnHeaders.Add , , "Kode Barang", 1600
ListView1.ColumnHeaders.Add , , "Nama Barang", 4000
ListView1.ColumnHeaders.Add , , "Satuan", 1200
ListView1.ColumnHeaders.Add , , "Qty", 600, 2
ListView1.ColumnHeaders.Add , , "Harga Jual", 1500, 1
ListView1.ColumnHeaders.Add , , "Hrg Jual x Jum Brg", 0
ListView1.ColumnHeaders.Add , , "Diskon 1", 1000, 1
ListView1.ColumnHeaders.Add , , "Diskon 2", 1000, 1
ListView1.ColumnHeaders.Add , , "Subtotal", 1500, 1
PgLoad.Visible = False
Dilanjutkan dengan pembuatan Sub Books_Penjualan, sub ini berfungsi untuk menampilkan data dari tabel koneksi MySQL Server dan syntak Loading Progressbar Berdasarkan Record
Sub Books_Penjualan()
Dim LI As ListItem
Dim SQL As String
ListView1.ListItems.Clear
ListView1.Sorted = False
SQL = "SELECT * from penjualan"
Set xRs = New ADODB.Recordset
xRs.Open SQL, CN, 1, 3
PgLoad.Min = 0
PgLoad.Max = xRs.RecordCount
If xRs.RecordCount = 0 Then
ListView1.ListItems.Clear
PgLoad.Value = 0
Else
PgLoad.Visible = True
PgLoad.Value = 0
xRs.MoveFirst
While Not xRs.EOF
Set LI = ListView1.ListItems.Add(, , Format(xRs.Fields!TANGGAL, "dd/MM/yyyy"))
LI.SubItems(1) = xRs.Fields!FAKTUR
LI.SubItems(2) = xRs.Fields!IDBARANG
LI.SubItems(3) = xRs.Fields!NMBARANG
LI.SubItems(4) = xRs.Fields!SATUAN
LI.SubItems(5) = xRs.Fields!JUMBRG
LI.SubItems(6) = Format(xRs.Fields!HRGJUAL, "#,##0")
LI.SubItems(7) = Format(xRs.Fields!HRGJUAL * xRs.Fields!JUMBRG, "#,##0")
LI.SubItems(8) = Format(xRs.Fields!DISCOUNT, "#,##0")
LI.SubItems(9) = Format(xRs.Fields!DISCOUNT2, "#,##0")
LI.SubItems(10) = Format(xRs.Fields!SubTotal, "#,##0")
xRs.MoveNext
PgLoad.Value = Int(PgLoad.Value) + 1
Wend
If PgLoad.Value = PgLoad.Max Then
PgLoad.Visible = False
MsgBox "Load Data : " & Format(xRs.RecordCount, "#,##0") & " Record Complate", 64, "Informasi"
End If
End If
End Sub
Double klik pada tombol Load Data kemudian panggil sub-sub function yang telah kita buat tadi seperti syntak dibawah ini
Call Koneksi
Call Books_Penjualan
Simpan dan RUN/F5 coba klik Load Data, maka ProgressBar akan tampil dan mengikuti load record pada tabel MySQL Server dan hasilnya dari loading akan tampil pesan berisi jumlah record yang telah diakses
Untuk sourcodenya bisa didownload di LINK INI secara Free, semoga artikel Loading Progressbar Berdasarkan Record dan bermanfaat bagi para pembaca
Perhatian !!
- Berkomentarlah dengan menggunakan bahasa yang baik dan sopan dan sesuai topik pembahasan
- Dilarang menjadikan referensi artikel web ini tanpa menyertakan sumbernya