Membuat Paging Pada MsFlexgrid Dengan Database MySQL di VB6

Pada kesempatan sebelumnya saya sudah pernah membahas paging memakai database MS Access dan MsFlexgrid untuk menampilkan datanya.
Pada kesempatan ini saya akan membuat paging menggunakan database MySQL dan masih memakai komponen MsFelxgrid. Jika anda menginginkan memakai komponen Listview tinggal disesuikan cara menampilkan datanya saja yang lainnya sama.

Lalu bagaimana cara Membuat Paging Pada MsFlexgrid Dengan Database MySQL di VB6?
Buka visual basic 6 lalu desain sebuah form tambahkan komponen MsFelxgrid, commad button, textbox dan frame untuk lebih jelasnya lihat gambar berikut ini

Tampilkan Gambar



Jika sudah mendesain jangan lupa tambahkan references, Klik menu project pilih references cari dan centang "Microsoft ActiveX Data Object 2.8 Library" jika sudah lalu tekan tombol OK.

Setelah itu tambahkan sebuah modul dengan cara klik menu Project pilih Add Modul kemudian ketikan kode berikut ini didalam modul tersebut. Koding dibawah ini digunakan untuk menghubungkan vb6 dengan database MySQL Server

Option Explicit
Public Conn As New ADODB.Connection

Public Sub KonekDB()
    Set Conn = New ADODB.Connection
    Conn.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;DSN=CobaPaging;"
    Conn.Open
    Conn.CursorLocation = adUseClient
End Sub

Catatan:
Dalam menghubungkan vb6 dengan database MySQL Server dalam tutorial ini saya memakai DSN (Data Source Name) yang saya beri nama CobaPaging. Jika anda belum bisa membuat DSN silahkan buka link tutorial cara membuat DSN.

Jika sudah kembali ke form lalu ketikan koding berikut ini pada bagian yang paling atas (General Declaration)
Option Explicit
Dim Baris As Integer
Dim Hal As Integer      ' variable untuk menampung halaman
Dim TotHal As Integer   ' variabel untuk menampugn total halaman
Dim A As String
Dim x As Double         'untk menampilkan record dimulai dr record ke x
Dim y As Double         'variabel untuk menampung jumlah data perhalaman
Dim i As Double

Dim RsMhs As New ADODB.Recordset

'Mengatur tampilan MsFelxGrid
Sub AktifGrid()
    MSFlexGrid.Clear
    MSFlexGrid.Rows = 2
    MSFlexGrid.Cols = 5
    '---------------
    MSFlexGrid.Col = 0
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "NO"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(0) = 500
    MSFlexGrid.AllowUserResizing = flexResizeColumns
    '
    MSFlexGrid.Col = 1
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "NIM"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(1) = 700
    MSFlexGrid.AllowUserResizing = flexResizeColumns
    '
    MSFlexGrid.Col = 2
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "NAMA MAHASISWA"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(2) = 2000
    MSFlexGrid.AllowUserResizing = flexResizeColumns
    '
    MSFlexGrid.Col = 3
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "ALAMAT"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(3) = 2000
    MSFlexGrid.AllowUserResizing = flexResizeColumns
    '
    MSFlexGrid.Col = 4
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "JURUSAN"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(4) = 2300
    MSFlexGrid.AllowUserResizing = flexResizeColumns
End Sub

'Menampilkan Data Ke MsFlexGrid
Sub TampilGrid()
    Call AktifGrid
    Baris = 0
    If RsMhs.EOF Then
        Exit Sub
    Else
        With RsMhs
            .MoveFirst
            Do Until .EOF
                Baris = Baris + 1
                MSFlexGrid.Rows = Baris + 1
                MSFlexGrid.TextMatrix(Baris, 0) = Baris
                MSFlexGrid.TextMatrix(Baris, 1) = !NIm
                MSFlexGrid.TextMatrix(Baris, 2) = !nama
                MSFlexGrid.TextMatrix(Baris, 3) = !alamat
                MSFlexGrid.TextMatrix(Baris, 4) = !Jurusan
                .MoveNext
            Loop
        End With
    End If
End Sub

Sub TampilanAwal()
    x = 0
    y = 10
    A = x & "," & y
    Hal = 1
    
    'Menampilkan Data ke Grid
    Set RsMhs = New ADODB.Recordset
    RsMhs.Open "SELECT NIM,NAMA,ALAMAT,JURUSAN FROM Tbl_Mahasiswa LIMIT " & A, _
                Conn, adOpenForwardOnly, adLockReadOnly
    Call TampilGrid
    
    'Menentukan Jml Halaman
    Set RsMhs = New ADODB.Recordset
    RsMhs.Open "SELECT NIM FROM Tbl_Mahasiswa", Conn, adOpenForwardOnly, adLockReadOnly
    i = RsMhs.RecordCount / y
    
    TotHal = Int(i) + IIf(CDbl(CStr(i - Int(i))) > 0.1, 1, 0)
    If TotHal = 0 Then TotHal = 1
    txtHal.Text = "Page " & Hal & " of " & TotHal & " Pages"
End Sub

Jika sudah ketikan koding berikut ini pada Form Load

Private Sub Form_Load()
    Call KonekDB
    Call TampilanAwal
End Sub

Kemudian ketikan kodinng berikut ini pada tombol cmdFirst, yang berfungsi untuk menampilkan data pada halaman pertama

Private Sub cmdFirst_Click()
    x = 0
    y = y
    A = x & "," & y
    Set RsMhs = New ADODB.Recordset
    RsMhs.Open "SELECT * FROM Tbl_Mahasiswa  LIMIT " & A, Conn, adOpenForwardOnly, adLockReadOnly
    Call TampilGrid
    Hal = 1
    txtHal.Text = "Page " & Hal & " of " & TotHal & " Pages"
End Sub

Jika sudah ketikan lagi koding berikut pada tombol cmdPrevious, yang berfungsi untuk menampilkan data pada halaman sebelumnya

Private Sub cmdPrevious_Click()
    If Hal = 1 Then
        MsgBox "Ini sudah sampai pada halaman pertama..!", vbCritical, ".:: Informasi "
        Exit Sub
    Else
        x = x - y
        y = y
        A = x & "," & y
        Set RsMhs = New ADODB.Recordset
        RsMhs.Open "SELECT * FROM Tbl_Mahasiswa LIMIT " & A, Conn, adOpenForwardOnly, adLockReadOnly
        Call TampilGrid
        Hal = Hal - 1
        txtHal.Text = "Page " & Hal & " of " & TotHal & " Pages"
    End If
End Sub

Lalu ketikan lagi koding berikut ini pada tombol cmdNext, yang berfungsi menampilkan data pada halaman berikutnya

Private Sub cmdNext_Click()
    If Hal = TotHal Then
        MsgBox "Sudah sampai pada halaman terakhir !", vbCritical, ".:: Informasi "
        Exit Sub
    Else
        x = x + y
        y = y
        A = x & "," & y
        Set RsMhs = New ADODB.Recordset
        RsMhs.Open "SELECT * FROM Tbl_Mahasiswa LIMIT " & A, Conn, adOpenForwardOnly, adLockReadOnly
        Call TampilGrid
        Hal = Hal + 1
        txtHal.Text = "Page " & Hal & " of " & TotHal & " Pages"
    End If
End Sub

Kemudian ketikan lagi koding pada tombol cmdLast, yang berfungsi menampilkan data pada halaman terakhir

Private Sub CmdLast_Click()
    x = (TotHal - 1) * y
    y = y
    A = x & "," & y
    
    Set RsMhs = New ADODB.Recordset
    RsMhs.Open "SELECT * FROM Tbl_Mahasiswa LIMIT " & A, Conn, adOpenForwardOnly, adLockReadOnly
    Call TampilGrid
    Hal = TotHal
    txtHal.Text = "Page " & Hal & " of " & TotHal & " Pages"
End Sub

Kemudian ketikan lagi koding berikut ini pada txtCari pada event Change, yang berguna untuk menampikan data pencarian sesuai dengan keyword yang diketikan pada textbox tersebut

Private Sub txtCari_Change()
    Set RsMhs = New ADODB.Recordset
    RsMhs.Open "SELECT * FROM Tbl_Mahasiswa WHERE NAMA LIKE '%" & txtCari.Text & "%' LIMIT 0,10", _
                Conn, adOpenForwardOnly, adLockReadOnly
    Call TampilGrid
End Sub

Yang terakhir ketikan koding berikut ini pada tombol cmdRefresh

Private Sub cmdRefresh_Click()
    Call TampilanAwal
End Sub

Kemudian simpan projectnya supaya tidak di gondol maling hehehehe :), jika sudah simpan, silahkan di run. Selesai

Demikian tutorial dari saya semoga dapat menambah ilmu kita dan bermanfaat. amien. Jika anda menginginkan source codenya silahkan download source codenya pada link dibawah ini.

Dalam source code tersebut sudah saya sertakan database hasil dari ekspor an database saya silahkan di impor  supaya bisa mencoba source code tersebut jangan lupa membuat DSN nya. Sebelum melakukan impor buatlah database kosong dengan nama db_akademik baru lakukanlah impor database. Jika anda belum bisa eksport import database silahkan buka link ini.

Download Source Code :



Tags:
Cara Membuat Paging, Tutorial Membuat Paging, Mengatasi load data banyak supaya tidak lemot/berat/lamban, Mempercepat load data pada grid, cara membuat halaman pada grid, membuat halaman pada msflexgrid, source code paging, download source code paging, Membuat Paging di vb6, Cara melakukan Paging, Cara Membuat Paging Data, Paging Data Dengan Visual Basic 6, Tutuorial membuat paging, Bagaimana caranya melakukan paging

No comments:

Post a Comment