![]() |
|
1. Tanamkan kontrol-kontrol pada Form anda sehingga membentuk tampilan berikut :

| Kontrol | Properti | Nilai |
| Form1 | Name Caption |
frmForumID Pengolahan Data Forum Diskusi Indoprog |
| Label1 | Caption | ForumID |
| Label2 | Caption | Keterangan |
| Label3 | Caption | Alamat Forum |
| Data1 | Name DatabaseName RecordSource BOFAction EOFAction |
RsForum C:\Modul9\Indoprog.mdb Forum MoveFirst MoveLast |
| Text1 | Name DataSource DataField |
txtForumID RsForum ForumID |
| Text2 | Name DataSource DataField |
txtKeterangan RsForum Keterangan |
| Text3 | Name DataSource DataField |
txtAlamat RsForum Alamat |
| Command1 | Name Caption |
cmdAdd &Add |
| Command2 | Name Caption |
cmdEdit &Edit |
| Command3 | Name Caption |
cmdDelete &Delete |
| Command4 | Name Caption |
cmdUpdate &Update |
| Command5 | Name Caption |
cmdCancel &Cancel |
| Command6 | Name Caption |
cmdFirst &First |
| Command7 | Name Caption |
cmdPrev &Previous |
| Command8 | Name Caption |
cmdNext &Next |
| Command9 | Name Caption |
cmdLast &Last |
2. Lakukan koding pada bagian General Declaration :
'Deklarasi Enumerated type untuk aksi oleh pemakai Private Enum Aksi flNone = 0 flAdd = 1 'Tambah data flEdit = 2 'Perbaiki data End Enum 'Deklarasi Variabel Flag adalah Aksi Dim Flag As Aksi
Private Sub Kunci(x) txtForumID.Locked = x 'Kunci textbox dari txtKeterangan.Locked = x 'perubahan oleh pemakai txtAlamat.Locked = x End Sub
Private Sub AturTombol(Add, Edit, Delete, Update, Cancel) cmdAdd.Enabled = Add 'Atur keaktifan cmdEdit.Enabled = Edit 'tombol cmdDelete.Enabled = Delete cmdUpdate.Enabled = Update cmdCancel.Enabled = Cancel End Sub
3. Lakukan koding untuk menangani Event pada Data kontrol
Private Sub RsForum_Error(DataErr As Integer, Response As Integer)
Select Case DataErr
Case 3163
MsgBox "Panjang data melebihi ukuran field"
Response = vbDataErrContinue
Case Else
Response = vbDataErrDisplay
End Select
End Sub
Private Sub RsForum_Reposition()
If Flag = flNone Then
If RsForum.Recordset.EOF Then 'Jika tabel kosong
Call AturTombol(True, False, False, False, False)
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
Else
Call AturTombol(True, True, True, False, False)
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
End If
Call Kunci(True)
End If
End Sub
Private Sub RsForum_Validate(Action As Integer, Save As Integer)
Select Case Action
Case vbDataActionAddNew
Case vbDataActionMoveFirst
Flag = flNone
Case vbDataActionMovePrevious
Flag = flNone
Case vbDataActionMoveNext
Flag = flNone
Case vbDataActionMoveLast
Flag = flNone
End Select
End Sub
3. Lakukan koding untuk masing-masing tombol
Private Sub cmdAdd_Click() Flag = flAdd 'Tandai sebagai tambah data RsForum.Recordset.AddNew Call Kunci(False) 'Buka penguncian Call AturTombol(False, False, False, True, True) txtForumID.SetFocus End Sub
Private Sub cmdEdit_Click() Flag = flEdit RsForum.Recordset.Edit Call Kunci(False) Call AturTombol(False, False, False, True, True) End Sub
Private Sub cmdDelete_Click()
On Error GoTo ErrCmdDelete_Click 'Error handle kalau tabel telah kosong
RsForum.Recordset.Delete 'Hapus data, dan record menjadi invalid
RsForum.Recordset.MoveNext 'Pindah kerecord berikutnya
If RsForum.Recordset.EOF Then 'Jika EOF
RsForum.Recordset.MoveLast 'Pindah kerecord terakhir
End If
Exit Sub
ErrCmdDelete_Click:
Select Case Err.Number
Case 3021
MsgBox "Data telah kosong", vbOKOnly + vbInformation, "Warning"
End Select
End Sub
Private Sub cmdUpdate_Click()
On Error GoTo ErrUpdate_click
If txtForumID.Text = "" Then
MsgBox "Forum ID tidak boleh kosong", vbCritical, "Warning"
Exit Sub
End If
If txtKeterangan.Text = "" Then
MsgBox "Keterangan tidak boleh kosong", vbCritical, "Warning"
Exit Sub
End If
If txtAlamat.Text = "" Then
MsgBox "Alamat tidak boleh kosong", vbCritical, "Warning"
Exit Sub
End If
RsForum.Recordset.Update
Flag = flNone
Call Kunci(True)
Call AturTombol(True, True, True, False, False)
RsForum.Recordset.Bookmark = RsForum.Recordset.LastModified
Exit Sub
ErrUpdate_click:
Select Case Err.Number
Case 3022
MsgBox "Telah terjadi duplikasi pada Forum ID", vbOKOnly + vbInformation, "Warning"
Case Else
MsgBox Err.Number & vbCrLf & Err.Description
End Select
End Sub
Private Sub cmdCancel_Click() RsForum.Recordset.CancelUpdate Call Kunci(True) Flag = flNone Call AturTombol(True, True, True, False, False) End Sub
Private Sub cmdFirst_Click() RsForum.Recordset.MoveFirst End Sub
Private Sub cmdPrev_Click() RsForum.Recordset.MovePrevious If RsForum.Recordset.BOF Then RsForum.Recordset.MoveFirst End If End Sub
Private Sub cmdNext_Click() RsForum.Recordset.MoveNext If RsForum.Recordset.EOF Then RsForum.Recordset.MoveLast End If End Sub
Private Sub cmdLast_Click() RsForum.Recordset.MoveLast End Sub