Home, Forum diskusi, Chatting, Download


Latihan 2

Judul : Pengaturan Program MultiUser dengan Optimistik Locks

1. Aktifkan kembali project sebelumnya dan lakukan perubahan pada koding Event Form_Load, sebagai berikut :

Private Sub Form_Load()
RsForum.Refresh
RsForum.Recordset.LockEdits = True	'Pesimistik Locks
End Sub

2. Lakukan perbaikan koding untuk Event cmdUpdate_Click menjadi sebagai berikut :

Private Sub cmdUpdate_Click()
On Error GoTo ErrcmdUpdate_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

CancelcmdUpdate:
Exit Sub

ErrcmdUpdate_click:
Select Case Err.Number
    Case 3022
         MsgBox "Telah terjadi duplikasi pada Forum ID", vbOKOnly + vbInformation, "Warning"
    Case 3167
         MsgBox "Data telah dihapus pemakai lain" & vbCrLf & _
                "Lakukan refresh data anda !", vbOKOnly + vbInformation
    Case 3197
         'Data pada recordset telah berubah
         'sejak ditampilkan.
         MsgBox "Data telah diubah oleh pemakai lain !", vbOKOnly + vbInformation
         'Hal ini secara otomatis akan menyegarkan
         'kembali recordset untuk menampilkan data terakhir
         RsForum.Recordset.Move 0
         Resume CancelcmdUpdate
    Case 3260
         'Record dikunci pemakai lain
         nHitung = nHitung + 1
         'Mencoba mengunci dua kali
         'Memungkinkan pemakai membuat keputusan ulangi, batal
         If nHitung > 2 Then
            nPilih = MsgBox("Data sedang dikunci pemakai lain" & vbCrLf & _
                            "Ulangi penguncian ?", vbYesNo + _
                            vbQuestion)
            If nPilih = vbYes Then
               nHitung = 1
            Else
               Resume CancelcmdUpdate
            End If
         End If
         DoEvents 'menjalankan event windows
         'menunda sejumlah waktu random
         nTunda = nHitung ^ 2 * Int(Rnd * 3000 + 1000)
         For i = 1 To nTunda: Next i
         Resume
    Case Else
         MsgBox "Error " & Err & ":" & Error, vbOKOnly
         Resume CancelcmdUpdate
End Select
End Sub

3. Lakukan percobaan yang sama seperti Latihan 1


Dibuat  oleh hendra@indoprog.com
Medan - Sumatera Utara
Indonesia
Member Of AdvertisingBanner.com
AdvertisingBanner.com