Menu

Friday, December 7, 2018

Pencarian di VB.Net dengan form berbeda


CARA MEMBUAT PENCARIAN DENGAN MENGGUNAKAN FORM YANG BERBEDA

Skenario:
Ketika Tombol Cari yang ada Group Data Peserta di klik, maka akan tampil Form Daftar Peserta.
Dari Form Data Peserta tersebut, kita bisa mencari dengan cara mengetikkan nama Pesertanya di TextBox Kata Kunci dan jika ditemukan datanya…hasilnya kita klik/Double Klik melalui Datagrid tersebut dan Otomatis Datanya akan ditempatkan di TextBox IDPeserta dan Nama Peserta yang ada di Form Sertifikat.

Nah, bagaimana cara buatnya ikutin langkah-langkah berikut:
1. Buat FormSertifikat seperti desain Form diatas 
2. Buat FormDaftarPeserta seperti desain Form diatas. 
3. Double Klik tombol Cari yang ada FormSertifikat di group Data Peserta 
4. Ketikkan script program berikut:
 .        
  Private Sub BtnCariPeserta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCariPeserta.Click
        Dim tabel As New FormDaftarPeserta
        tabel.ShowDialog()
        If tabel.retIDPeserta <> "" Then
            txtIDPeserta.Text = tabel.retIDPeserta
            txtNamaPeserta.Text = tabel.retNamaPeserta
            CboKeikutsertaan.Focus()
        End If
    End Sub
2    
      5. Ketikkan script berikut di FormDaftarPeserta



Imports MySql.Data.MySqlClient
Imports MySql.Data
Public Class FormDaftarPeserta
    Public sqlx, retIDPeserta, retNamaPeserta As String
    Sub isiGrid()
        Call bukaDB()
        DA = New MySqlDataAdapter("SELECT * from Peserta", Conn)
        DS = New DataSet
        DA.Fill(DS, "Peserta")
        DataGridView1.DataSource = DS.Tables("Peserta")
        DataGridView1.ReadOnly = True
        DataGridView1.Columns(0).Width = 70
        DataGridView1.Columns(1).Width = 150
    End Sub
    Private Sub FormDaftarPeserta_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
        TextBox1.Focus()
    End Sub
    Private Sub FormDaftarPeserta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call isiGrid()
        ComboBox1.Items.Add("IDPeserta")
        ComboBox1.Items.Add("Nama Peserta")
        ComboBox1.Text = "Nama Peserta"

    End Sub
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        TextBox1.Focus()
    End Sub
    Private Sub pilih()
        Dim i As Integer
        i = Me.DataGridView1.CurrentRow.Index
        Try
            With DataGridView1.Rows.Item(i)
                retIDPeserta = .Cells(0).Value.ToString
                retNamaPeserta = .Cells(1).Value.ToString
            End With
            Me.Close()
        Catch ex As Exception
            MsgBox("Pilih salah satu data", MsgBoxStyle.Critical)
        End Try
    End Sub

    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
        Call pilih()
    End Sub

    Private Sub DataGridView1_RowPostPaint(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
        Dim dg As DataGridView = DirectCast(sender, DataGridView)
        Dim rownumber As String = (e.RowIndex + 1).ToString()
        While rownumber.Length < dg.RowCount.ToString().Length
            rownumber = "0" & rownumber
        End While
        Dim size As SizeF = e.Graphics.MeasureString(rownumber, Me.Font)
        If dg.RowHeadersWidth < CInt(size.Width + 20) Then
            dg.RowHeadersWidth = CInt(size.Width + 20)
        End If
        Dim b As Brush = SystemBrushes.ControlText
        e.Graphics.DrawString(rownumber, dg.Font, Brushes.Beige, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + ((e.RowBounds.Height - size.Height) / 2))
    End Sub
    Private Sub BtnKeluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Close()
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If ComboBox1.Text = "ID Peserta" Then
            Using bbb As New MySqlClient.MySqlCommand("select * from Peserta where IDPeserta like '%" & TextBox1.Text & "%' order by IDPeserta", Conn)
                CMD.CommandTimeout = 0
                Using dr As MySqlClient.MySqlDataReader = bbb.ExecuteReader()
                    Using dt As New DataTable
                        dt.Load(dr)
                        If dt.Rows.Count = 0 Then
                            DataGridView1.DataSource = Nothing
                        Else
                            DataGridView1.DataSource = dt
                        End If
                    End Using
                End Using
            End Using
        ElseIf ComboBox1.Text = "Nama Peserta" Then
            Using bbb As New MySqlClient.MySqlCommand("select * from Peserta where NamaPeserta like '%" & TextBox1.Text & "%' order by NamaPeserta", Conn)
                CMD.CommandTimeout = 0
                Using dr As MySqlClient.MySqlDataReader = bbb.ExecuteReader()
                    Using dt As New DataTable
                        dt.Load(dr)
                        If dt.Rows.Count = 0 Then
                            DataGridView1.DataSource = Nothing
                        Else
                            DataGridView1.DataSource = dt
                        End If
                    End Using
                End Using
            End Using
        End If
    End Sub
End Class
   6. Jalankan Program

Catatan: jika menggunakan SQL Server ganti MYSQL menjadi SQL


No comments:

Post a Comment