Artikel ini merupakan serial CRUD VB.NET Ms. Access lanjutan dari Part 1.
Tahap berikutnya kita akan menciptakan kemudahan edit/mengubah data yang telah ada. User akan mengedit data dengan menentukan row yang ada di datagridview, kemudian double klik untuk menampilkan data yang hendak di edit di control input (textbox). Kita tambahkan code berikut pada event grdData_CellMouseDoubleClick.
Private Sub grdData_CellMouseDoubleClick(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) _
Handles grdData.CellMouseDoubleClick
txtCode.Text = grdData.CurrentRow.Cells(0).Value
txtName.Text = grdData.CurrentRow.Cells(1).Value
tbrEdit.Enabled = False
txtCode.ReadOnly = True
End Sub
Code txtCode.ReadOnly = True disertakan untuk mengunci textbox instruksi supaya tidak mampu diedit sebab merupakan primary key. Selain dapat pribadi double klik pada grid, user juga dapat memilih row data lalu klik tombol Edit, maka perlu procedure yang sama pada event tbrEdit_Click. Tapi kita tidak akan mengetik ulang code melainkan mengundang sub procedure event CellMouseDoubleClick seperti berikut:
Private Sub tbrEdit_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles tbrEdit.Click
grdData_CellMouseDoubleClick(Nothing, Nothing)
End Sub
Oiya sebelum lanjut ke Saving pergantian, kita tambahkan dahulu code di event tbrCancel_Click dahulu yah. Karena procedure ini akan diundang beberapa kali. Fungsinya yaitu untuk membersihkan control input, refresh ulang data, dan membatalkan proses input gres/edit selama belum di Save.
Private Sub tbrCancel_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles tbrCancel.Click
txtCode.Text = String.Empty
txtName.Text = String.Empty
tbrEdit.Enabled = True
txtCode.ReadOnly = False
Data_Load()
End Sub
Code tbrEdit.Enabled = False sebagai parameter pembeda, apakah status input sedang input gres atau sedang edit data. Karena untuk menyimpan pergantian menggunakan event yang sama yaitu tbrSave_Click. Kita akan mengganti dan menyertakan beberapa code pada event ini. (Rani tandai dengan highlight perubahannya yah)
Private Sub tbrSave_Click(sender As Object, _
e As EventArgs) Handles tbrSave.Click
Dim myCommand As New OleDbCommand
Dim SQL As String
Try
If Not con.State = ConnectionState.Open Then Open_Koneksi()
If tbrEdit.Enabled = True Then
SQL = "INSERT INTO kategori (kodekategori, namakategori) VALUES " & _
"('" & txtCode.Text & "', '" & txtName.Text & "')"
Else
SQL = "UPDATE kategori SET namakategori = '" & txtName.Text & "' " & _
"WHERE kodekategori = '" & txtCode.Text & "'"
End If
myCommand.Connection = con
myCommand.CommandText = Sql
myCommand.ExecuteNonQuery()
If tbrEdit.Enabled = True Then
MsgBox("Data gres tersimpan")
Else
MsgBox("Perubahan tersimpan")
End If
tbrCancel_Click(Nothing, Nothing)
con.Close()
Catch myerror As OleDbException
MessageBox.Show("Error: " & myerror.Message)
Finally
con.Dispose()
End Try
End Sub
Mari kita coba run lagi.
Click here if you like this article.
Sumber http://rani-irsan.blogspot.com
EmoticonEmoticon